Тернарний оператор

Тернарний оператор - це спеціальний оператор, який має три операнди і дозволяє створювати короткий умовний вираз зі зменшеним обсягом коду. По суті він є короткою заміною if...else.

умова ? вираз1_коли_умова_виконується : вираз2_коли_умова_НЕ_виконується

Порядок опрацювання тернарного оператора:

  • умова обчислюється і приводиться до булевого значення (true або false).

  • Якщо умова приводиться до true, виконується вираз після ?.

  • Якщо умова приводиться до false, виконується вираз після :.

  • Значення отриманого виразу повертається як результат роботи тернарного оператора.

Напишемо код перевірки віку з використанням інструкції if...else.

let isAdult;
let age = 20;
if (age >= 18) {
  isAdult = "Повнолітній";
} else {
  isAdult = "Не повнолітній";
}

console.log(isAdult);

Проведемо рефакторинг цього коду з використанням тернарного оператора:

let age = 20;
let isAdult = (age >= 18) ? 'Повнолітній' : 'Не повнолітній';

console.log(isAdult);  // Виведе 'Повнолітній', оскільки age >= 18 є true

Розглянемо ще один приклад пошуку більшого числа.

let result;
let value1 = 21;
let value2 = 32;

if (value1 >= value2) {
  result = value1;
} else {
  result = value2;
}

console.log(result);

Рефакторинг з використанням тернарного оператора:

let value1 = 21;
let value2 = 32;

let result = value1 >= value2 ? value1 : value2;

console.log(result);

Тернарний оператор використовують у простих операціях присвоєння або повернення. Для складних конструкцій його не використовують - це погана практика через важкість читання коду і можливі неочікуванні помилки роботи програми.

Last updated