Frontend Matrix: post #1995 — TG.ME

⚖️ JS: В чем разница между || и ???

До появления оператора (??) все использовали логическое ИЛИ для задания дефолтных значений. Но у ИЛИ есть скрытая проблема: он считает ложными числа 0 и пустые строки:
const config = {
volume: 0 // Пользователь выкрутил звук в ноль
};

const currentVolume = config.volume || 50;
console.log(currentVolume); // Выведет 50! Ноль проигнорировался.

Оператор (??) заменяет значение только в том случае, если слева стоит null или undefined.
const currentVolume = config.volume ?? 50;
console.log(currentVolume); // Выведет 0. Всё работает корректно!

Используйте (||) для строк или булевых значений, а (??) — когда работаете с числами, где ноль имеет значение.
❤1
July 6, 2026 286 5