js中判断对象是否有某个属性的方式

文章类型:Javascript

发布者:hp

发布时间:2023-04-25

在实际开发中,经常会遇到判断对象某个属性是否存在,今天,整理一下常用方式

一:方式

1:使用in运算符,可以检查对象是否具有给定名称的属性,存在返回true,不存在返回false

'name' in {name: '黄小白个人博客'} //true

> 'name' in {} //false

2:Reflect.has()用于判断对象是否存在某个属性

Reflect.has({name:"黄小白个人博客"}, "name"); // true
Reflect.has({name:"黄小白个人博客"}, "age"); // false

3:hasOwnProperty 用来检测一个对象是否包含特定的自身属性,用来判断一个属性定义在对象本身而不是继承原型链的

o = new Object();
o.name = '黄小白个人博客';
o.hasOwnProperty('name'); // 返回 true

o={name:"黄小白个人博客"}
o.hasOwnProperty('name'); // 返回 true
o.hasOwnProperty('toString'); // 返回 false

4:Object.prototype.hasOwnProperty()

o={hasOwnProperty:"黄小白个人博客"}
Object.prototype.hasOwnProperty.call.hasOwnProperty(o,'name'); // 返回false

5:Object.hasOwn()

Object.hasOwn({name: '黄小白个人博客'}, 'name')  // true
Object.hasOwn({}, 'name') //false

二:总结

1:指定的属性在指定的对象或其原型链中,则 in 运算符 返回true

上一篇js中的in