Вложенная деструктуризация объекта с необязательным адресом

Подойдёт const { address: { city = 'Не указан' } = {} } = user. Значения по умолчанию работают для undefined, но не заменяют null.

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

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

Подойдёт const { address: { city = 'Не указан' } = {} } = user. Значения по умолчанию работают для undefined, но не заменяют null.

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

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

Условие

Дан объект user = { name: 'Анна', address: { city: 'Казань' } }. Извлеките city одной деструктуризацией; при отсутствии address или city используйте «Не указан».

Ответ

Подойдёт const { address: { city = 'Не указан' } = {} } = user. Значения по умолчанию работают для undefined, но не заменяют null.

В приведённом объекте city будет «Казань». Для {} результат — «Не указан». Если контракт допускает address: null, вложенная деструктуризация выбросит ошибку; безопаснее написать const city = user.address?.city ?? 'Не указан'. Если сам user может отсутствовать, добавьте optional chaining и к нему.

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

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

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

Подробнее