我有一个与此处相同的问题:Checking if a key exists in a JavaScript object?。
但是,我正在寻找一种适用于所有主要浏览器(包括IE 6+)的方法。我看到的我喜欢的方法是使用in
运算符,这是我从未见过的。
我在谷歌浏览器中尝试了其他方法,该方法似乎可行,但我想知道为什么不使用它而不是in
运算符。
以供引用:
var data = {foo : "bar"};
console.log("foo" in data); // true
console.log("bar" in data); // false
我的建议:
var data = {foo : "bar"};
console.log(!!data.foo); // true
console.log(!!data.bar); // false
我的(第二种)方法有什么缺点吗?
最佳答案
您似乎正在寻找一种替代方法,因为您之前并不了解in
运算符,并假定所有主流浏览器都不支持该运算符。实际上,包括IE6在内的所有主要浏览器都支持它。从MSDN:
我将避免解释您提出的方法的弊端,因为已经有了另一个答案和评论。