Object.hasOwn
Проверяет, есть ли у объекта собственное свойство.
Доступно с: ES2022
Синтаксис
Object.hasOwn(obj, key)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| obj | object | Объект, который проверяется. |
| key | string | 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 вместо ошибки, если объекта нет.
Вопросы и ответы по теме
В учебнике
- Перебор и функции Object — Как перебрать объект в JavaScript: Object.keys, Object.values, Object.entries, Object.fromEntries, for...in и Object.hasOwn.