什么是正确的做法?
if (myObj['key'] == undefined)
或
if (myObj['key'] == null)
if (myObj['key'])
您应该使用#0。例如:
myObj.hasOwnProperty('myKey');
备注:如果您使用的是ESLint,上面可能会给您一个违反无原型-内置于s规则的错误,在这种情况下,解决方法如下:
Object.prototype.hasOwnProperty.call(myObj, 'myKey');
试试JavaScriptin运算符。
if ('key' in myObj)
相反的。
if (!('key' in myObj))
小心!in运算符匹配所有对象键,包括对象原型链中的键。
in
使用myObj.hasOwnProperty('key')检查对象自己的键,只有当key直接在myObj上可用时才会返回true:
myObj.hasOwnProperty('key')
key
myObj
true
除非您有特定的原因使用in运算符,否则使用myObj.hasOwnProperty('key')会产生大多数代码正在寻找的结果。