Основы JavaScript: Тернарные операторы

Mar 23 2023
Что такое тернарный оператор? Тернарный оператор используется для проверки условий в вашем коде вместо использования оператора if…else. Его также называют условным оператором, и он делает код значительно короче и легче для чтения (в большинстве случаев).
Фото Цветослава Христова на Unsplash

Что такое тернарный оператор?

Тернарный оператор используется для проверки условий в вашем коде вместо использования оператора if…else. Его также называют условным оператором, и он делает код значительно короче и легче для чтения (в большинстве случаев).

Синтаксис

Давайте посмотрим на синтаксис тернарного оператора:

condition ? trueExpression : falseExpression

condition — состояние, которое вы оцениваете. Например: Возраст> 5.

trueExpression: это то, что должно произойти, conditionеслиtrue.

falseExpression: это то, что должно произойти, conditionеслиfalse.

Пример

Ниже приведен пример использования оператора if…else, проверяющего, должна ли машина двигаться в зависимости от цвета светофора.

let color = ‘red’; // color of the traffic light
let carMovement;

if (color === 'red') {
  carMovement = 'stop';
} else {
  carMovement = 'go';
}

console.log(carMovement); //stop

let color = 'red'; // color of the traffic light
let carMovement = color === red ? 'stop' : 'go';

console.log(carMovement); //stop

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

let num = 2;
let result = num >= 0 ? num === 0 ? 'zero' : 'positive' : 'negative';

console.log(result); //positive

let num = 2;
let result = (num >= 0) ? (num === 0 ? "zero" : "positive") : "negative";

console.log(result); //positive

Когда следует использовать тернарные операторы?

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

Эмпирическое правило заключается в том, чтобы подумать, сможет ли кто-то еще в следующие 2 года легко прочитать и понять ваш код. Если ответ отрицательный — используйте оператор if…else.

Совет: если вы используете ESlint, он вообще запрещает использование вложенных тернарных операторов!

Заключение

Тернарные операторы эффективны только тогда, когда они упрощают чтение, понимание и сопровождение кода. Они предназначены не только для того, чтобы сделать код короче, поэтому используйте их эффективно.