При обращении к несуществующему свойству объекта JavaScript возвращает undefined. Это происходит потому, что JavaScript сначала ищет свойство в объекте, и если не находит — возвращает undefined, а не выбрасывает ошибку.
Когда вы пытаетесь получить значение свойства, которого нет в объекте, JavaScript ведёт себя особенным образом. Важно понимать это для правильной работы с объектами.
При обращении к несуществующему свойству всегда возвращается undefined:
const user = { name: 'Иван' };
console.log(user.age); // undefinedJavaScript не выбрасывает ошибку, потому что:
const obj = { a: 1 };
console.log(obj.b); // undefined
console.log(obj.c); // undefinedconst user = {
name: 'Иван',
address: { city: 'Москва' }
};
console.log(user.phone); // undefined
console.log(user.address.street); // undefinedconst obj = { a: 1 };
// Не вызывает ошибку
console.log(obj.nonExistent); // undefined
// Вызовет ошибку
console.log(obj.nonExistent.property); // TypeError!const obj = {
value: undefined,
missing: undefined // На самом деле свойства нет
};
console.log(obj.value); // undefined
console.log(obj.missing); // undefined
// Но это разные ситуации!const user = { name: 'Иван' };
// Простая проверка
if (user.age === undefined) {
console.log('Возраст не указан');
}const config = { theme: 'dark' };
// Нет необходимости проверять каждый параметр
const lang = config.language || 'ru'; // 'ru' по умолчанию// ❌ Думаем, что будет ошибка
const obj = { a: 1 };
console.log(obj.b); // undefined, не ошибка!
// ✅ Правильное понимание
console.log(obj.b === undefined); // true// ❌ Ошибка — нельзя читать свойства undefined
const obj = { a: 1 };
console.log(obj.b.c); // TypeError!
// ✅ Безопасный способ
console.log(obj.b && obj.b.c); // undefinedПонимание этого поведения помогает писать более надёжный код и избегать неожиданных ошибок.
Хотите больше статей для подготовки к собеседованиям? Подписывайтесь на EasyAdvice, добавляйте сайт в закладки и совершенствуйтесь каждый день 💪