Значения по умолчанию с оператором нулевого слияния

Оператор нулевого слияния (??) предоставляет простой способ обработки null или undefined значений в JavaScript. Он просто необходим, и я расскажу, почему.

Один из важных элементов синтаксиса JavaScript, который я с удовольствием использую, — это оператор нулевого слияния (??). Оператор ?? обрабатывает значения по умолчанию более эффективно по сравнению с традиционным подходом, использующим логический оператор ИЛИ (||). Это 100-процентно необходимый приём.

Оба оператора ?? и || возвращают правый операнд, если левый операнд является «ложным». Но ключевое различие заключается в том, что считать «ложным»…

Разница между || и ??

Оператор логического ИЛИ (||) рассматривает false, 0, NaN, "" (пустую строку), null и undefined как ложные. Поэтому, если встретится любое из них, будет возвращена правая часть выражения ||. Это происходит и тогда, когда значение типа 0 или "" может быть валидным и предназначенным для использования:

const value = 0;
const _default = 5;
console.log(value || _default); // Результат: 5 (потому что 0 ложное значение)

Здесь || оценивает 0 как ложное значение, поэтому по умолчанию возвращается значение 5.

Однако оператор нулевого слияния (??) считает ложными только null и undefined. Любое другое значение, даже если оно является ложным в логическом контексте (например, 0, false или пустая строка), не приведёт к значению по умолчанию:

const value = 0;
const _default = 5;
console.log(value ?? _default); // Результат: 0 (потому что 0 не является null или undefined)

Оператор ?? рассматривает 0 как допустимое значение, поэтому он не заменяет его значением по умолчанию.

Почему ?? безопаснее для значений по умолчанию

JavaScript оператор нулевого слияния — мощный инструмент, отлично подходящий для ситуаций, когда необходимо сохранить ложные значения, такие как 0, false или пустая строка, но при этом предоставить значения по умолчанию для null или undefined. Это различие помогает предотвратить непредвиденные эффекты, возникающие при использовании ||, особенно при работе с числами или пустыми строками.

Используя ??, можно избежать неожиданных результатов и написать более предсказуемый, надёжный JavaScript код, точно обрабатывающий значения по умолчанию.

Ключевые преимущества:

Комментарии


Дополнительные материалы

Предыдущая Статья

Создание кастов моделей

Следующая Статья

Итак, вы хотите отказаться от пре- и постпроцессоров CSS...