В чём разница между оператором || и оператором ?? в JavaScript/TypeScript? Что произойдёт, если retryLimit равен 0?

Оператор || выбирает правый операнд при любом falsy-значении слева, а ?? — только при null или undefined.

Короткий ответ

Что ответить на собеседовании

Оператор || выбирает правый операнд при любом falsy-значении слева, а ?? — только при null или undefined.

Подробный разбор

Ответ с пояснениями

Оператор || выбирает правый операнд при любом falsy-значении слева, а ?? — только при null или undefined.

Поэтому при retryLimit = 0 выражение retryLimit || 3 даст 3, а retryLimit ?? 3 сохранит 0. Если ноль означает отсутствие повторных попыток, для значения по умолчанию подходит ??.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку