Тернарний оператор у JavaScript – це скорочена форма для написання операторів if...else. Тернарний оператор обчислює умову, і виконує відповідний вираз, в залежності від значення цієї умови.
Синтаксис тернарного оператора у JavaScript:
condition ? expression1 : expression2- тернарний оператор обчислює condition
- якщо умова true, виконується expression1
- якщо умова false, виконується expression2
Тобто тернарний оператор приймає три операнди, звідки походить його назва.
Приклад:
function getAccessStatus(age) {
let message = age >= 18 ? 'Access allowed' : 'Access denied';
console.log(message);
}
getAccessStatus(15); // Access denied
getAccessStatus(20); // Access allowedТернарний оператор у JavaScript, можна використовувати у певних випадках замість операторів if..else. Код з прикладу вище, можна написати наступним чином:
function getAccessStatus(age) {
let message;
if (age >= 18) {
message = 'Access allowed';
} else {
message = 'Access denied';
}
console.log(message);
}
getAccessStatus(15); // Access denied
getAccessStatus(20); // Access allowedЯк видно з прикладів, тернарний оператор дозволяє написати умовну логіку в один рядок, що робить код більш компактним, і в деяких випадках більш зрозумілим.
Кілька умов у тернарному операторі
У тернарному операторі можна застосувати кілька умов, поєднавши їх за допомогою логічних операторів:
function getAccessStatus(age) {
let message = age >= 18 && age <= 60 ? 'Access allowed' : 'Access denied';
console.log(message);
}
getAccessStatus(65); // Access denied
getAccessStatus(20); // Access allowedВкладений тернарний оператор
Є можливість вкласти один тернарний оператор, в інший тернарний оператор. Наприклад:
function getNumberInfo(number) {
let result = number >= 0 ? (number == 0 ? 'zero' : 'positive') : 'negative';
console.log(`The number ${number} is ${result}.`);
}
getNumberInfo(1); // The number 1 is positive.
getNumberInfo(0); // The number 0 is zero.
getNumberInfo(-1); // The number -1 is negative.По можливості намагайтесь уникати вкладених тернарних операторів, оскільки вони ускладнюють читання коду.