Тернарний оператор
Тернарний оператор використовується у якості синтаксично коротшої заміни інструкції if...else, коли одній і тій самій змінній необхідно присвоїти різні значення за умовою.
<умова> ? <вираз_якщо_умова_правдива> : <вираз_якщо_умова_хибна>
Працює за наступною схемою:
- Обчислюється
умова. - Якщо умова правдива, тобто приводиться до
true, обчислюється вираз після?. - Якщо умова хибна, тобто приводиться до
false, обчислюється вираз після:. - Значення обчисленого виразу повертається у якості результату роботи тернарного оператора.
let type;
const age = 20;
if (age >= 18) {
type = "adult";
} else {
type = "child";
}
console.log(type); // "adult"
Виконаємо рефакторинг, замінивши if...else на тернарний оператор.
const age = 20;
const type = age >= 18 ? "adult" : "child";
console.log(type); // "adult"
Запишемо операцію пошуку більшого числа.
const num1 = 5;
const num2 = 10;
let biggerNumber;
if (num1 > num2) {
biggerNumber = num1;
} else {
biggerNumber = num2;
}
console.log(biggerNumber); // 10
Код працює правильно, отримуємо більше число з двох, але це рішення здається занадто громіздким, враховуючи, наскільки проста проблема. Використовуємо тернарний оператор.
const num1 = 5;
const num2 = 10;
const biggerNumber = num1 > num2 ? num1 : num2;
console.log(biggerNumber); // 10
Цікаво
Тернарний оператор повинен використовуватися у простих операціях присвоєння або повернення. Його використання для опису складних розгалужень - погана практика (антипатерн).