Оператор нулевого слияния ?? и оператор логического ИЛИ || в JavaScript имеют схожую функциональность, но различаются в том, как они обрабатывают ложные (falsy) значения.

Оператор нулевого слияния ?? возвращает правый операнд, если левый операнд равен null или undefined. Иначе, если левый операнд не равен null или undefined, возвращается значение левого операнда. Оператор нулевого слияния не рассматривает пустые строки (''), ноль (0), или логический false как равные null или undefined.

Пример использования оператора нулевого слияния:

const foo = null ?? "default" // 'default'
const bar = false ?? "default" // false
const baz = 0 ?? "default" // 0

Оператор логического ИЛИ ||, с другой стороны, возвращает первый истинный (truthy) операнд. Если левый операнд является ложным (nullundefined0false, пустая строка ''NaN), то возвращается правый операнд.

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

const foo = null || "default" // 'default'
const bar = false || "default" // 'default'
const baz = 0 || "default" // 'default'

Важно отметить, что оператор нулевого слияния ?? и оператор логического ИЛИ || имеют разные приоритеты, поэтому порядок выполнения может быть иным, если операторы используются вместе с другими операторами.

В общем случае, оператор нулевого слияния ?? рекомендуется использовать для проверки на null или undefined, а оператор логического ИЛИ || - для проверки на ложные значения (nullundefined0false, пустая строка ''NaN) в других случаях.


Назад