哪一件事是正确的?

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

or

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

or

if (myObj['key'])

当前回答

尝试JavaScript in运算符。

if ('key' in myObj)

反之亦然。

if (!('key' in myObj))

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

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

myObj.hasOwnProperty('key')

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

其他回答

您应该使用hasOwnProperty。例如:

myObj.hasOwnProperty('myKey');

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

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

尝试JavaScript in运算符。

if ('key' in myObj)

反之亦然。

if (!('key' in myObj))

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

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

myObj.hasOwnProperty('key')

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