Оператор || выбирает правый операнд при любом falsy-значении слева, а ?? — только при null или undefined.
В чём разница между оператором || и оператором ?? в JavaScript/TypeScript? Что произойдёт, если retryLimit равен 0?
Оператор || выбирает правый операнд при любом falsy-значении слева, а ?? — только при null или undefined.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Оператор || выбирает правый операнд при любом falsy-значении слева, а ?? — только при null или undefined.
Поэтому при retryLimit = 0 выражение retryLimit || 3 даст 3, а retryLimit ?? 3 сохранит 0. Если ноль означает отсутствие повторных попыток, для значения по умолчанию подходит ??.