> Как проверить наличие свойства в объекте в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Иннотех, Soft_Media_Group

Стек: JavaScript

> Пример ответа

В JavaScript существует несколько способов проверить наличие свойства в объекте, каждый из которых имеет свои особенности.

  1. Оператор in - проверяет наличие свойства как в самом объекте, так и в его цепочке прототипов:

    JAVASCRIPT
    const obj = { name: 'Alice' };
    console.log('name' in obj); // true
    console.log('toString' in obj); // true (из прототипа)
  2. Метод hasOwnProperty() - проверяет только собственные свойства объекта (не из прототипа):

    JAVASCRIPT
    const obj = { name: 'Alice' };
    console.log(obj.hasOwnProperty('name')); // true
    console.log(obj.hasOwnProperty('toString')); // false
  3. Сравнение с undefined - простой, но ненадёжный способ, так как свойство может существовать, но иметь значение undefined:

    JAVASCRIPT
    const obj = { name: 'Alice', age: undefined };
    console.log(obj.name !== undefined); // true
    console.log(obj.age !== undefined); // false (ошибочно)
  4. Метод Object.hasOwn() (ES2022) - современная альтернатива hasOwnProperty, более безопасная:

    JAVASCRIPT
    const obj = Object.create(null); // объект без прототипа
    obj.name = 'Alice';
    console.log(Object.hasOwn(obj, 'name')); // true

Рекомендация: Для проверки собственных свойств используйте Object.hasOwn() или hasOwnProperty(). Если нужно учитывать унаследованные свойства - применяйте оператор in.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью