Web前端之路程序员让前端飞

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

2021-02-02  本文已影响0人  嘻哈章鱼小丸子
1. .[]
const obj = {a:1, b:2, c:3,d:undefined};
obj.d //undefined
obj.e //undefined
obj.toString  //ƒ toString() { [native code] }

缺点:不能用在属性值为 undefined 的场景

2. in
const obj = {a:1, b:2, c:3,d:undefined};
'd' in obj //true
'e' in obj //false
'toString' in obj //true

缺点:无法区分自身和原型链上的属性

3. Reflect.has
const obj = {a:1, b:2, c:3,d:undefined};
Reflect.has(obj,'d') //true
Reflect.has(obj,'e') //false
Reflect.has(obj,'toString') //true

缺点:无法区分自身和原型链上的属性,同方法二

4. hasOwnProperty
const obj = {a:1, b:2, c:3,d:undefined};
obj.hasOwnProperty('d') //true
obj.hasOwnProperty('e') //false
obj.hasOwnProperty('toString') //false

缺点:只能判断自身属性

总结
上一篇 下一篇

猜你喜欢

热点阅读