Javascript IN运算符兼容性

jAn*_*ndy 47 javascript ecma262

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

说明:

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

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

if('Lastname' in myObject){
    // Lastname is an attribute of myObject
}
Run Code Online (Sandbox Code Playgroud)

And*_*y E 55

它在ECMAScript第3版中定义.它适用于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
Run Code Online (Sandbox Code Playgroud)

  • 它只在IE 5.5+中出现; IE 5.0是`in`的'问题浏览器',但很明显,担心现在已经很久了. (2认同)
  • @Andy:你是对的,那个doc确实是胡说八道!我在这里有IE5/Win98而且`in`肯定不起作用. (2认同)