检测obj是否存在name属性。
let obj = {name: "MIke"}
1.in 关键字
不仅可以检测到对象自身的属性,还可以检测继承属性,比如 toString
"name" in obj // true 自身属性
"toString" in obj // true 继承自其原型的属性
2. hasOwnPropertyOf()方法
该方法只能检测自身属性,不能检测继承属性
obj. hasOwnProperty('name') // true 自身属性
obj. hasOwnProperty('toString') // false 继承属性
3. 直接获取属性值(undefined判断)
自身属性和继承属性都可以检测
obj.name !== undefined // false 则不存在
obj.toString !== undefined //true 存在
但是这种方式的不足之处是,如果name的值就是undefined
如:
obj = {name: undefined};
obj.name !== undefined // false 属性存在(undefined)但结果仍为false
4. 用if判断
if(obj.name)
网友评论