← Назад к вопросам

Какой синтаксис у тернарного оператора?

2.0 Middle🔥 171 комментариев
#JavaScript Core

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI4 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Синтаксис тернарного оператора в JavaScript

Тернарный оператор (также называемый условным оператором) имеет следующий базовый синтаксис:

условие ? выражение_если_истина : выражение_если_ложь

Детальное объяснение компонентов:

  1. Условие - любое выражение, которое возвращает булево значение (true/false). Если выражение приводится к истинному значению (truthy), выполняется первая ветка, если к ложному (falsy) - вторая.

  2. ? - разделитель между условием и выражением для истинного случая.

  3. Выражение_если_истина - выполняется, если условие истинно.

  4. : - разделитель между двумя вариантами результата.

  5. Выражение_если_ложь - выполняется, если условие ложно.

Базовый пример:

const age = 18;
const status = age >= 18 ? 'взрослый' : 'ребёнок';
console.log(status); // 'взрослый'

Практические примеры использования:

Присвоение значения переменной:

const score = 85;
const grade = score >= 90 ? 'A' : 
              score >= 80 ? 'B' : 
              score >= 70 ? 'C' : 'D';
console.log(grade); // 'B'

Возврат значения из функции:

function getPrice(isMember) {
    return isMember ? 10 : 20;
}
console.log(getPrice(true));  // 10
console.log(getPrice(false)); // 20

Работа с DOM:

const element = document.getElementById('myElement');
const isVisible = element.style.display !== 'none';
element.style.opacity = isVisible ? '1' : '0.5';

Важные особенности:

  • Тернарный оператор возвращает значение, поэтому его можно использовать в любом месте, где ожидается выражение
  • Это единственный оператор в JavaScript, который принимает три операнда
  • Выражения в обеих ветках должны быть указаны (опустить одну из веток нельзя)
  • Оператор имеет правую ассоциативность, что позволяет создавать цепочки условий

Цепочки тернарных операторов (эмулирующие else if):

const time = 14;
const greeting = time < 12 ? 'Доброе утро' :
                 time < 18 ? 'Добрый день' :
                 time < 22 ? 'Добрый вечер' : 'Доброй ночи';
console.log(greeting); // 'Добрый день'

Сравнение с if...else:

// Тернарный оператор
const result1 = condition ? value1 : value2;

// Эквивалентный if...else
let result2;
if (condition) {
    result2 = value1;
} else {
    result2 = value2;
}

Рекомендации по использованию:

Используйте тернарный оператор когда:

  • Нужно простое присвоение в зависимости от условия
  • Код должен быть компактным и читаемым
  • Обе ветки содержат простые выражения

Избегайте когда:

  • Условия становятся слишком сложными (лучше использовать if...else)
  • Нужно выполнить несколько операций в одной ветке
  • Код становится трудным для понимания

Производительность и читаемость:

Тернарный оператор часто работает быстрее, чем эквивалентная конструкция if...else, особенно в современных движках JavaScript. Однако главное преимущество - краткость и выразительность кода. Важно соблюдать баланс между краткостью и читаемостью: слишком длинные или вложенные тернарные выражения могут ухудшить понимание кода.

// Хороший пример - просто и понятно
const userRole = isAdmin ? 'admin' : isModerator ? 'moderator' : 'user';

// Плохой пример - слишком сложно для понимания
const config = condition1 ? 
               (condition2 ? 
                (condition3 ? value1 : value2) : 
                value3) : 
               (condition4 ? value4 : value5);

Тернарный оператор - мощный инструмент в арсенале JavaScript-разработчика, который при правильном использовании делает код более чистым, лаконичным и выразительным.

Какой синтаксис у тернарного оператора? | PrepBro