Тернарний оператор
Тернарний оператор використовується у якості синтаксично коротшої заміни інструкції 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
Цікаво
Тернарний оператор повинен використовуватися у простих операціях присвоєння або повернення. Його використання для опису складних розгалужень - погана практика (антипатерн).