如何检查JavaScript对象是否拥有特定属性?

问题描述

在JavaScript中,如何检查某个特定的属性是否存在于对象中,如果存在则返回true,不存在则返回false

解决方案

我们通常会检查对象的属性值是否为undefined,以此来判断属性是否存在。但是,会漏掉一种情况——属性存在,并且其值刚好为undefined

var obj = { key: undefined };
obj["key"] != undefined // false, 但是属性存在

因此,我们应当使用in操作符来检测:

"key" in obj // true, 不关心它所对应的值

另外,如果你只是想检测这个属性到底是对象本身的,而不是从原型上继承而来,可以使用hasOwnProperty

obj.hasOwnProperty("key"); // true
用户头像
登录后发表评论