Как прочитать имя из вложенного объекта без путаницы

В этом объекте имя хранится в person.Name.Name. Свойство FirstName не объявлено, поэтому person.Name.FirstName вернёт undefined; ожидаемое название не создаёт поле автоматически.

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

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

В этом объекте имя хранится в person.Name.Name. Свойство FirstName не объявлено, поэтому person.Name.FirstName вернёт undefined; ожидаемое название не создаёт поле автоматически.

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

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

Условие

В JavaScript дан объект person = { Age: 30, Name: { Name: 'Анна', LastName: 'Иванова' } }. Как получить имя? Что вернёт попытка прочитать FirstName? Как безопасно обращаться, если вложенный объект может отсутствовать?

Ответ

В этом объекте имя хранится в person.Name.Name. Свойство FirstName не объявлено, поэтому person.Name.FirstName вернёт undefined; ожидаемое название не создаёт поле автоматически.

const person = {
  Age: 30,
  Name: { Name: 'Анна', LastName: 'Иванова' }
};
console.log(person.Name.Name); // Анна
console.log(person.Name.FirstName); // undefined
const missing = {};
console.log(missing.Name?.Name); // undefined

Optional chaining защищает от обращения к отсутствующему вложенному объекту, но не исправляет неверное имя свойства. Если person тоже может быть null или undefined, при условии что переменная объявлена, используют person?.Name?.Name. Для получения именно поля FirstName нужно сначала изменить контракт или явно преобразовать входные данные.

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

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

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

Подробнее