如何检查一个对象在JavaScript中是否有键?

什么是正确的做法?

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

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

if (myObj['key'])
1898368 次浏览

您应该使用#0。例如:

myObj.hasOwnProperty('myKey');

备注:如果您使用的是ESLint,上面可能会给您一个违反无原型-内置于s规则的错误,在这种情况下,解决方法如下:

Object.prototype.hasOwnProperty.call(myObj, 'myKey');

试试JavaScriptin运算符

if ('key' in myObj)

相反的。

if (!('key' in myObj))

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

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

myObj.hasOwnProperty('key')

除非您有特定的原因使用in运算符,否则使用myObj.hasOwnProperty('key')会产生大多数代码正在寻找的结果。