Условный тернарный оператор в JavaScript присваивает значение переменной на основе некоторого условия и является единственным оператором JavaScript, который принимает три операнда.
Тернарный оператор заменяет оператор if , в котором оба предложения if и else назначьте разные значения одному и тому же полю, например:
if (condition)
result = 'something';
else
result = 'somethingelse';
data-type = “code”>
Тернарный оператор сокращает этот оператор if/else до одного оператора :
result = (условие)? 'something': 'somethingelse';
data-type = “code”>
Если условие истинно, тернарный оператор возвращает значение первого выражения; в противном случае возвращается значение второго выражения. Давайте рассмотрим его части:
- Сначала создайте переменную, которой вы хотите присвоить значение, в данном случае результат . Переменная result будет иметь другое значение в зависимости от условия.
- Обратите внимание, что в правой части (то есть самого оператора) condition является первым.
- За condition всегда следует вопросительный знак (? ), что в основном может быть прочитано как «было ли это правдой?»
- Два возможных результата идут последними, разделенные двоеточием (: ).
Это использование тернарного оператора доступно только тогда, когда исходный оператор if следует формату, показанному выше, но это вполне распространенный сценарий, и использование тернарного оператора может быть гораздо более эффективным.
Пример тернарного оператора
Давайте посмотрим на реальный пример.
Возможно, вам нужно определить, какие дети подходят для посещения детского сада. У вас может быть такой условный оператор:
var age = 7;
var kindergarten_elhibited;
data-type = “code “>
if (age> 5) {
kindergarten_elposed =" достаточно стар ";
}
else {
kindergarten_elhibited = "Слишком молод";
}
data-type = “code”>
Используя тернарный оператор, вы можете сократить выражение для:
var kindergarten_elhibited = (age data-type = "code">Этот пример, конечно, вернет "Достаточно старый"
/p>
Несколько оценок
Вы можете включить несколько также оценки:
var age = 7, var social_ready = true;
var kindergarten_elhibited = (age «Достаточно старый, но еще не готовый» «Старый и достаточно зрелый в социальном отношении»
консоль. журнал (детский сад_подходит); //регистрирует «старые и социально зрелые»data-type="code">
Несколько операций
Тернарный оператор также позволяет включать несколько операций для каждого выражения, разделенных запятой:
var age = 7, socially_ready = true;data-type = "code">
age> 5? (
alert ("Вы достаточно взрослые."),
location.assign ("continue.html")
): (
socially_ready = false,
alert ("Извините, но вы еще не готовы.")
);data-type = "code">
Значение тернарных операторов
Тернарные операторы избегают многословного кода, поэтому, с одной стороны, они кажутся желательными. С другой стороны, они могут поставить под угрозу читаемость - очевидно, «IF ELSE» легче понять, чем загадочный «?».
При использовании тернарного оператора - или любое сокращение - подумайте, кто будет читать ваш код. Если менее опытным разработчикам может потребоваться понимание логики вашей программы, возможно, следует избегать использования тернарного оператора. Это особенно верно, если ваше условие и оценки достаточно сложны, и вам потребуется вложить или связать тернарный оператор. Фактически, такие вложенные операторы могут влиять не только на удобочитаемость, но и на отладку.
Как и в случае с любым другим программным решением, не забудьте рассмотреть контекст и удобство использования перед использованием тернарный оператор.