协慌网

登录 贡献 社区

如何检查对象是否在 JavaScript 中有密钥?

哪个是正确的做法?

if (myObj['key'] == undefined)

要么

if (myObj['key'] == null)

要么

if (myObj['key'])

答案

尝试 JavaScript 操作

if ('key' in myObj)

和逆。

if (!('key' in myObj))

小心! in运算符匹配所有对象键,包括对象原型链中的对象键。

使用myObj.hasOwnProperty('key')检查对象自己的密钥,只有在myObj直接可用key时才返回true

myObj.hasOwnProperty('key')

除非您有特定的理由使用in运算符, myObj.hasOwnProperty('key')使用myObj.hasOwnProperty('key')会生成大多数代码正在查找的结果。

你应该使用hasOwnProperty 。例如:

myObj.hasOwnProperty('myKey');