Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Object.hasOwn

Проверяет, есть ли у объекта собственное свойство.

Доступно с: ES2022

Синтаксис

Object.hasOwn(obj, key)

Параметры

ПараметрТипОписание
objobjectОбъект, который проверяется.
keystring | symbolИмя свойства.

Возвращаемое значение

booleantrue, если у объекта есть собственное свойство с этим именем.

Примеры

Есть ли свойство:

const user = { name: 'Anna', email: undefined };
 
console.log(Object.hasOwn(user, 'name'));
console.log(Object.hasOwn(user, 'age'));
console.log(Object.hasOwn(user, 'email'));

Результат:

true
false
true

Отличие от оператора in — унаследованные свойства:

const user = { name: 'Anna' };
 
console.log('toString' in user);
console.log(Object.hasOwn(user, 'toString'));

Результат:

true
false

Примечания

Свойство со значением undefined всё равно существует, поэтому проверка user.email !== undefined и Object.hasOwn() дают разные ответы. Это современная замена obj.hasOwnProperty(key).

См. также

  • in — Проверяет, есть ли у объекта свойство (в том числе унаследованное).
  • Object.prototype.hasOwnProperty — Проверяет, есть ли у объекта собственное свойство (старый способ).
  • Optional chaining (?.) — Безопасное обращение к свойству: вернёт undefined вместо ошибки, если объекта нет.

Вопросы и ответы по теме

В учебнике

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.