在前端开发过程时常需要判断从接口拿到的数据中根据是否有某个键值key去做对应的显示效果或者逻辑处理,这里介绍三种方法,推进使用hasOwnProperty
第一种:obj["key"] != undefined
这种有缺陷,如果这个key定义了,并且就是很2的赋值为undefined,那么这句就会出问题了。
第二种:if("key" in obj)
该方法不会忽略掉那些从原型链上继承到的属性
第三种:obj.hasOwnProperty("key")
hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。所有继承了 Object 的对象都会继承到 hasOwnProperty 方法。这个方法可以用来检测一个对象是否含有特定的自身属性;和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。
更多资料参考文档【mdn web docs】https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty