Что представляет собой оператор нулевого слияния? проверяет значение на null и undefined возвращает правый операнд, когда левый равен null или undefined обозначается оператором ?? в отличие от || не воспринимает false, 0 и '' как "пустые" значения позволяет задавать значения по умолчанию активно применяется в JavaScript и TypeScript делает код более читаемым и помогает избежать ошибок при проверке значений
Что такое оператор нулевого слияния и как он работает?
Что представляет собой оператор нулевого слияния? проверяет значение на null и undefined возвращает правый операнд, когда левый равен null или undefined обозначается оператором ?? в отличие от || не воспринимает…
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Что представляет собой оператор нулевого слияния?
- проверяет значение на null и undefined
- возвращает правый операнд, когда левый равен null или undefined
- обозначается оператором ??
- в отличие от || не воспринимает false, 0 и '' как "пустые" значения
- позволяет задавать значения по умолчанию
- активно применяется в JavaScript и TypeScript
- делает код более читаемым и помогает избежать ошибок при проверке значений
Развёрнутый ответ
Основной ответ
Оператор нулевого слияния (nullish coalescing operator) — специальный логический оператор, который обычно записывается как ??. Он возвращает первый операнд, если тот не равен null или undefined. Если же первый операнд имеет значение null либо undefined, результатом становится второй операнд. Такой оператор удобно применять для задания значений по умолчанию, когда переменная не определена или отсутствует.
Основные особенности
- Логический оператор
||(ИЛИ) тоже может использоваться для выбора значения по умолчанию, однако??работает иначе: он не заменяет такие значения, как0, пустая строка""иfalse. Они считаются корректными, поэтому переход ко второму операнду в этих случаях не выполняется. - Оператор появился в стандарте ECMAScript 2020 и поддерживается большинством современных версий JavaScript и TypeScript.
- Не следует применять оператор
??вместе с логическими операторами (&&,||) без скобок. Такое сочетание может вызвать синтаксическую ошибку, поэтому приоритет операций нужно задавать явно.
Пример практического применения
Представим пользовательские настройки, где 0 или пустая строка являются допустимыми значениями, а значение по умолчанию требуется только при отсутствии исходного значения. В такой ситуации оператор нулевого слияния подходит лучше всего:
const userValue = 0;
const defaultValue = 10;
const value = userValue ?? defaultValue; // value будет 0, а не 10, как при использовании ||
Итак, ?? помогает отличать отсутствующие значения от «пустых», но допустимых данных, благодаря чему код становится надёжнее и понятнее.