Тернарный оператор в JavaScript: Удобство и эффективность

e004cf94 a482 45bb ac53 e0c83770d47b HTML

Тернарный, или условный оператор, в JavaScript является единственным оператором, который принимает три операнда. Он служит своеобразной альтернативой условному оператору if.

Рассмотрим следующую функцию:

function findBiggerNumber(num1, num2) {
if (num1 > num2) {
return num1;
}
}
let biggerNumber = findBiggerNumber(someNumber1, someNumber2);

Нашли ошибку? Если нет, посмотрите еще раз. Замечание: я спешил закончить проект, устал и, видимо, поэтому был невнимателен.

Функция выше должна «найти наибольшее значение». Она вернет num1, если num1 больше num2. Но я забыл про num2 и возможность того, что условие может не выполниться. Для опытного разработчика такая ошибка выглядит странно, но в условиях усталости и спешки её легко совершить. JavaScript не предъявляет требований к возвращаемым значениям функций и не предупреждает об ошибке в таких случаях.

Правильное решение выглядит так:

function findBiggerNumber(num1, num2) {
if (num1 > num2) {
return num1;
} else {
return num2;
}
}
let biggerNumber = findBiggerNumber(someNumber1, someNumber2);

Примечание: если переменные равны, функция вернет num2.

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

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

Тернарный означает «три». Действительно, тернарный оператор состоит из трех операндов. Большинство операторов, которые мы используем, бинарные — они требуют два операнда, например, +, -, *, >, < и так далее. Тернарный оператор имеет один дополнительный операнд. Пример:

let biggerNumber = num1 > num2 ? num1 : num2;

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

Подробное объяснение тернарного оператора

{condition} ? {expression if true} : {expression if false}

или на русском:

{условие} ? {выражение1, если условие выполнено} : {выражение2, если условие не выполнено}

Первым операндом является условие. Второй операнд — выражение, которое возвращает значение, если условие истинно (true). Третий операнд — это альтернативное выражение, которое возвращает значение, если условие ложно (false).

Преимущества тернарного оператора

Использование тернарного оператора вместо функции имеет два явных преимущества:

  1. Гарантированное возвращение значения. В противном случае JavaScript выдаст синтаксическую ошибку. Это предотвращает ошибки и невнимательность.
  2. Компактность кода без ущерба для читабельности.

Заключение

Тернарные операторы лучше всего использовать для коротких и простых условий и выражений. Для сложных логических решений оставьте условные операторы if или switch.

Оцените статью