Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: undefined, property access, TypeError, JavaScript, null pointer

Что произойдет при попытке обращения к свойству undefined?

Этот вопрос проверяет понимание поведения JavaScript при обращении к свойствам неопределённых значений и помогает избежать ошибок времени выполнения.

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

При попытке обращения к свойству значения undefined в JavaScript будет выброшена ошибка TypeError: Cannot read properties of undefined. Это происходит потому, что undefined является примитивным типом, у которого нет свойств. Чтобы избежать этой ошибки, можно использовать опциональную цепочку (?.) или проверять значение перед доступом к свойству.

Длинный ответ

В JavaScript undefined — это примитивное значение, которое обозначает отсутствие определения переменной или свойства. Поскольку это примитив, у него нет внутренней структуры объекта, и попытка получить доступ к его свойству (например, undefined.someProperty) или вызвать метод приводит к немедленной ошибке.

Почему возникает ошибка?

Движок JavaScript, встречая выражение undefined.property, пытается преобразовать undefined в объект, чтобы получить доступ к свойству. Это преобразование невозможно для примитива undefined, поэтому генерируется TypeError. Это защитный механизм языка, предотвращающий дальнейшую работу с несуществующими данными.

Практические примеры и решения

Рассмотрим типичный сценарий, где переменная может быть undefined:

let user;
// user = undefined по умолчанию

// Это вызовет ошибку:
// console.log(user.name); // TypeError!

// Решение 1: Проверка через if
if (user !== undefined) {
  console.log(user.name);
}

// Решение 2: Опциональная цепочка (ES2020)
console.log(user?.name); // Выведет undefined, но ошибки не будет

// Решение 3: Использование значения по умолчанию
let safeName = (user || {}).name; // undefined
let safeName2 = user?.name ?? 'Гость'; // 'Гость'

Где это важно?

  • При работе с данными из API, которые могут прийти неполными.
  • При глубоком доступе к вложенным свойствам объектов (obj.level1.level2.property).
  • В функциях, где аргументы могут быть не переданы.

Вывод: Всегда проверяйте или защищайте код при доступе к свойствам переменных, которые могут быть undefined. Используйте опциональную цепочку ?. для безопасного доступа и оператор нулевого слияния ?? для задания значений по умолчанию. Это ключевая практика для написания устойчивого JavaScript-кода.

Уровень

  • Рейтинг:

    4

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#undefined

#property access

#TypeError

#JavaScript

#null pointer

Подпишись на React Developer в телеграм