Middle
Qual é a diferença entre o operador lógico OU (||) e o operador de fusão nula (??)?
sobes.tech IA
Resposta da IA
Логический оператор ИЛИ (||) и оператор нулевого слияния (??) похожи, но имеют важные отличия в поведении при проверке значений.
-
Оператор || возвращает первый операнд, который приводится к 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, а не для всех "ложных" значений.