Условният терминален оператор в JavaScript присвоява стойност на променлива въз основа на някакво условие и е единственият JavaScript оператор, който приема три операнда.
Тройният оператор е заместител на ако изявление, в което и двете ако и още клаузите присвояват различни стойности на едно и също поле, като така:
ако (условие)
резултат = 'нещо';
още
result = 'somethingelse';
Тернарният оператор съкращава това, ако / else декларация в едно-единствено изявление:
резултат = (условие)? 'нещо': 'somethingelse';
ако състояние е вярно, терминалният оператор връща стойността на първия израз; в противен случай връща стойността на втория израз. Нека разгледаме неговите части:
- Първо, създайте променливата, на която искате да присвоите стойност, в този случай, доведе до. Променливата доведе до ще има различна стойност в зависимост от състоянието.
- Обърнете внимание, че от дясната страна (т.е. самия оператор), състояние е на първо място.
- Най- състояние винаги е последван от въпросник (?), което по принцип може да се чете като „вярно ли беше това?“
- Двата възможни резултата са последни, разделени с двоеточие (:).
Тази употреба на терминален оператор е наличен само когато оригинала ако заявлението следва формата, показан по-горе - но това е доста често срещан сценарий и използването на терминалния оператор може да бъде далеч по-ефективно.
Пример за терминален оператор
Нека да разгледаме реален пример.
Може би трябва да определите кои деца са подходящата възраст за посещение на детска градина. Може да имате условно изявление като това:
вар възраст = 7;
вар детска градина;
ако (възраст> 5) {
kids_eligible = "Достатъчно стар";
}
друго {
vrtić_eligible = "Твърде млад";
}
Използвайки терминалния оператор, можете да съкратите израза до:
вар детска градина_eligible = (възраст <5)? "Твърде млад": "Достатъчно стар";
Този пример, разбира се, ще върне „Достатъчно стар“.
Множество оценки
Можете също така да включите множество оценки:
var age = 7, var socially_ready = true;
вар детска градина_eligible = (възраст <5)? „Твърде млад“: socially_ready
„Достатъчно стар, но все още не е готов“ „Достатъчно стар и социално зрял“
console.log (детска градина_ избираем); // logs "Достатъчно стари и социално зрели"
Множество операции
Тройният оператор също така позволява включването на множество операции за всеки израз, разделени със запетая:
var age = 7, socially_ready = true;
възраст> 5? (
предупреждение ("Достатъчно стар си."),
location.assign ( "continue.html")
): (
socially_ready = невярно,
сигнал („Съжалявам, но все още не сте готови.“)
);
Последици от последния оператор
Теренните оператори избягват многословно в противен случай код, така че, от една страна, те изглеждат желани. От друга страна, те могат да компрометират четимостта - очевидно, „АКО ЕЛЕЗИ“ се разбира по-лесно от криптовалута „?“.
Когато използвате терминален оператор - или каквото и да е съкращение - помислете кой ще чете вашия код. Ако може да се наложи по-малко опитни разработчици да разберат логиката на вашата програма, може би трябва да се избягва използването на терминалния оператор. Това е особено вярно, ако състоянието и оценките ви са достатъчно сложни, че ще трябва да гнездят или веригите на вашия тройни оператор. В действителност, тези видове вложени оператори могат да повлияят не само на четимост, но и отстраняване на грешки.
Както при всяко решение за програмиране, не забравяйте да вземете предвид контекста и използваемостта, преди да използвате терминален оператор.