Назад к вопросам
Middle
4
Какая разница между логическим ИЛИ (||) и оператором нулевого слияния (??)?
Компании, где спрашивали
Data World
Ответ от нейросети
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, а не для всех "ложных" значений.