Вопрос проверяет понимание разницы между операторами и выражениями в JavaScript, а также знание особенностей синтаксиса языка.
В JavaScript существует фундаментальное различие между операторами (statements) и выражениями (expressions). Выражение — это любой фрагмент кода, который вычисляется в значение. Например, 2 + 2 — это выражение, результатом которого является число 4. Оператор, напротив, выполняет действие, но не возвращает значение. Классический пример — if.
Конструкция if управляет потоком выполнения: она проверяет условие и выполняет один из блоков кода. Она не предназначена для возврата значения. Это решение было принято при создании языка для простоты и читаемости. Однако это создаёт неудобства, когда нужно использовать условную логику внутри выражений.
Основное неудобство — невозможность использовать if в местах, где ожидается выражение. Например, нельзя написать:
let result = if (x > 0) { 'positive' } else { 'negative' };Вместо этого приходится использовать тернарный оператор ? :, который является выражением:
let result = x > 0 ? 'positive' : 'negative';Другой пример — передача условного значения в функцию:
console.log(if (x > 0) { 'positive' } else { 'negative' }); // ОшибкаПриходится вычислять значение заранее:
let message = x > 0 ? 'positive' : 'negative';
console.log(message);Понимание разницы между операторами и выражениями помогает писать более лаконичный и предсказуемый код. Тернарный оператор — основной инструмент для замены if в выражениях, но его стоит использовать только для простых условий, чтобы не ухудшать читаемость.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию