Javascript IN 运算符兼容性

IT技术 javascript ecma262
2021-03-22 05:47:14

有人能告诉我 IN 运算符可用的 ECMA 版本以及哪些浏览器(版本)支持它吗?

解释:

IN 运算符可以像下面这样使用:

var myObject = {
    Firstname: 'Foo',
    Lastname: 'Bar'
};

if('Lastname' in myObject){
    // Lastname is an attribute of myObject
}
2个回答

它在ECMAScript 3rd edition 中定义它适用于 IE 5.5+ 和所有正在使用的 Firefox、Chrome、Opera 和 Safari 版本。

您可以放心地使用它,因为它知道它会起作用。

在使用它来检查事件支持时,您应该谨慎行事。除旧版 Firefox 之外的所有实现都支持"eventname" in element作为 DOM 事件的测试。

"onclick" in document.body; // -> false in old Fx, true in others
document.body.setAttribute("onclick", "");
typeof(document.body.onclick == "function"); // -> true in Fx
它仅在 IE 5.5+ 中;IE 5.0 是in.
2021-04-22 05:47:14
2021-04-25 05:47:14
@Nick:它肯定在 3.0 中,即使 IE 在发布时不支持它。ECMAScript 3.1 是后来成为第五版的开发名称。
2021-05-01 05:47:14
@bobince - 你确实是对的,我有第二版,比较时不是第三版,找不到第 11.8.7 节,它在 3.0 中。
2021-05-18 05:47:14
@Andy:你说得对,那个医生确实是胡说八道!我这里有 IE5/Win98,但in肯定不行。
2021-05-20 05:47:14

根据 MDC,它是在 JavaScript 1.4 中实现的

根据维基百科

  • 网景导航器 6.0
  • 火狐 1.0+
  • 浏览器 5.5+
  • 歌剧 6.0+
  • Safari 3.0+
  • 铬 1.0+

所以我认为你可能没问题:)

真的,你应该把它作为另一个答案,因为现在我们的评论没有意义。
2021-04-26 05:47:14
注意:我怀疑 Wikipedia 是关于 Javascript 功能浏览器版本支持的可靠来源。
2021-05-02 05:47:14
@Skilldrick 您可以使用<s>显然meta.stackexchange.com/questions/63768/...
2021-05-13 05:47:14
因为我可以undefined = 'defined!';在代码的前面,这显然是有益的。
2021-05-21 05:47:14