我有一个与此处相同的问题: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:



我将避免解释您提出的方法的弊端,因为已经有了另一个答案和评论。

09-17 16:48
查看更多