Когда для значения по умолчанию нужен ||, а не ??

Оператор || заменит пустую строку, а ?? заменяет только null и undefined. Для данного контракта || подходит, но строку из пробелов нужно отдельно нормализовать.

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

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

Оператор || заменит пустую строку, а ?? заменяет только null и undefined. Для данного контракта || подходит, но строку из пробелов нужно отдельно нормализовать.

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

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

Условие

Пустое имя пользователя должно отображаться как «Гость». Сервер возвращает строку, null или undefined. Сравните name || 'Гость' и name ?? 'Гость' для пустой строки.

Ответ

Оператор || заменит пустую строку, а ?? заменяет только null и undefined. Для данного контракта || подходит, но строку из пробелов нужно отдельно нормализовать.

Используйте const displayName = name?.trim() || 'Гость'. Для чисел выбор часто противоположный: count ?? 10 сохраняет допустимый ноль, тогда как count || 10 заменит его. Здесь «ошибка» варианта с ?? — пустая подпись, а не исключение JavaScript. Выбирайте оператор по допустимым данным, а не по внешней краткости.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее