Тернарный оператор JavaScript как ярлык для операторов If / Else

Условный троичный оператор в JavaScript присваивает значение переменной на основе некоторого условия и является единственным оператором JavaScript, который принимает три операнда.

Тернарный оператор является заменой если утверждение, в котором оба если и еще предложения присваивают разные значения одному и тому же полю, например так:

если (условие)
результат = «что-то»;
еще
результат = что-то другое;

Тернарный оператор сокращает этот оператор if / else до одного:

результат = (условие)? «что-то»: «что-то»; 

Если условие true, троичный оператор возвращает значение первого выражения; в противном случае он возвращает значение второго выражения. Давайте рассмотрим его части:

  • Сначала создайте переменную, которой вы хотите присвоить значение, в этом случае, результат. Переменная результат будет иметь различное значение в зависимости от состояния.
  • Обратите внимание, что с правой стороны (то есть самого оператора) условие это первое.
  • условие всегда сопровождается знаком вопроса (?), который в основном можно прочитать как "это было правдой?"
  • instagram viewer
  • Два возможных результата идут последними, разделенными двоеточием (:).

Это использование троичный оператор доступно только когда оригинал если оператор следует формату, показанному выше - но это довольно распространенный сценарий, и использование тернарного оператора может быть гораздо более эффективным.

Пример троичного оператора

Давайте посмотрим на реальный пример.

Возможно, вам необходимо определить, какие дети подходящего возраста для посещения детского сада. У вас может быть условное утверждение, подобное этому:

var возраст = 7;
var kindergarten_elitable;
если (возраст> 5) {
kindergarten_elptable = "Достаточно стар";
}
еще {
kindergarten_elptable = "Слишком молодой";
}

Используя троичный оператор, вы можете сократить выражение до:

var kindergarten_elptable = (возраст <5 лет)? «Слишком молод»: «достаточно взрослый»;

Этот пример, конечно, вернет «достаточно старый».

Несколько оценок

Вы также можете включить несколько оценок:

var age = 7, var socially_ready = true;
var kindergarten_elptable = (возраст <5 лет)? "Слишком молод": socially_ready
«Достаточно стар, но еще не готов», «Стар и социально зрел»
console.log (kindergarten_elitable); // журналы "Старые и достаточно взрослые"

Несколько операций

Тернарный оператор также позволяет включать несколько операций для каждого выражения, разделенных запятой:

var age = 7, socially_ready = true;
возраст> 5? (
оповещение («Вы достаточно взрослый»),
location.assign ( "continue.html")
): (
socially_ready = false,
alert («Извините, но вы еще не готовы».)
);

Тернарный оператор Последствия

Тернарные операторы избегают многословного кодТаким образом, с одной стороны, они кажутся желательными. С другой стороны, они могут поставить под угрозу читабельность - очевидно, «IF ELSE» легче понять, чем загадочное «?».

При использовании троичного оператора - или любого сокращения - подумайте, кто будет читать ваш код. Если менее опытным разработчикам может понадобиться понять логику вашей программы, возможно, следует избегать использования троичного оператора. Это особенно верно, если ваше состояние и оценки достаточно сложны, чтобы вам пришлось вкладывать или цеплять вашего троичного оператора. Фактически, эти типы вложенных операторов могут влиять не только на читаемость, но и на отладку.

Как и в случае любого программного решения, не забудьте рассмотреть контекст и удобство использования, прежде чем использовать троичный оператор.

instagram story viewer