Условия if и оператор ??
Как выбирать ветку выполнения и сохранять допустимые нули и пустые значения.
Основная идея
If запускает блок при истинном условии. Условием может быть сравнение или само значение, которое преобразуется к логическому. Это удобно, но проверка if(value) одновременно отбрасывает ноль, пустую строку, null и undefined.
Оператор ?? выбирает запасное значение только для null и undefined. В отличие от ||, он сохраняет ноль и false. Используйте его, когда отсутствие значения отличается от корректного отрицательного или нулевого результата.
Пример JavaScript
const savedCount = 0;
const count = savedCount ?? 10;
if (count === 0) {
console.log("Пока нет материалов");
} else {
console.log(`Материалов: ${count}`);
}
Счётчик останется нулём, поэтому выполнится первая ветка. Запасное значение 10 не подменяет корректное значение 0.
Частая ошибка
Самостоятельная проверка
Повторите пример со значениями null, undefined и 3. Запишите ожидаемую ветку до запуска, а затем сравните результат.
Код здесь показан для изучения. Встроенная песочница сайта выполняет только HTML/CSS. JavaScript проверяйте в собственном учебном файле или консоли своего тестового проекта; не вставляйте непонятный код на страницах с личными данными.