Sobes.tech
Back to questions
Middle
5

Какая разница между логическим ИЛИ (||) и оператором нулевого слияния (??)?

Companies where asked
Data World

Answer from AI

sobes.tech AI

Логический оператор ИЛИ (||) и оператор нулевого слияния (??) похожи, но имеют важные отличия в поведении при проверке значений.

  • Оператор || возвращает первый операнд, который приводится к true в логическом контексте. Если первый операнд "ложный" (false, 0, '', null, undefined, NaN), он возвращает второй.

  • Оператор ?? возвращает первый операнд, если он не равен null или undefined, иначе второй.

Пример:

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

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