Тернарний оператор у 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.

По можливості намагайтесь уникати вкладених тернарних операторів, оскільки вони ускладнюють читання коду.


Мітки: