哪个是正确的做法?
if (myObj['key'] == undefined)
或者
if (myObj['key'] == null)
或者if (myObj['key'])
哪个是正确的做法?
if (myObj['key'] == undefined)
或者
if (myObj['key'] == null)
或者if (myObj['key'])
尝试使用JavaScript中的in运算符。
if ('key' in myObj)
还有它的逆。
if (!('key' in myObj))
小心!in
操作符会匹配对象原型链上的所有键。
使用myObj.hasOwnProperty('key')
检查对象自身的键,只有在myObj
直接包含key
时才会返回true
:
myObj.hasOwnProperty('key')
除非你有特定原因要使用in
运算符,否则使用myObj.hasOwnProperty('key')
可以得到大多数代码所需要的结果。
你应该使用hasOwnProperty
。例如:
myObj.hasOwnProperty('myKey');
注意: 如果您正在使用ESLint,上述内容可能会触发违反no-prototype-builtins规则的错误。在这种情况下,解决方法如下:
Object.prototype.hasOwnProperty.call(myObj, 'myKey');
{}.hasOwnProperty.call(object, "key")
来使用它。 - aug
!!myObj.key
,它会返回true
(如果存在)和false
(如果不存在)。 - Anh-Thi DINHconst user = { name: "John", admin: false }; !!user.name
将返回true。 但是,即使存在'admin'键,!!user.admin
将返回false。 - Tim Meehan