|| выбирает значение справа для любого falsy-значения, а ?? — только для null и undefined.
В чём разница между использованием || и ?? для задания значения по умолчанию?
|| выбирает значение справа для любого falsy-значения, а ?? — только для null и undefined.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
|| выбирает значение справа для любого falsy-значения, а ?? — только для null и undefined.
Поэтому 0 || 10 даст 10, а 0 ?? 10 сохранит 0; аналогично различаются пустая строка и false. Для пользовательских данных это часто критично. При смешивании ?? с || или && требуются явные скобки, чтобы задать допустимую структуру выражения.