Sobes.tech
Back to questions
Middle
2

Чем отличается оператор нулевого слияния (??) от логического ИЛИ (||)?

Companies where asked
SimbirsoftSimbirsoft

Answer from AI

sobes.tech AI

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

Пример:

const a = 0;
console.log(a || 42);  // 42, потому что 0 — ложное значение
console.log(a ?? 42);  // 0, потому что a не null и не undefined

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