有人可以告诉我自哪个ECMA版本的IN操作符可用以及哪些浏览器(版本)支持它?Javascript IN操作兼容性
说明:
中,操作者可以使用如下所示:
var myObject = {
Firstname: 'Foo',
Lastname: 'Bar'
};
if('Lastname' in myObject){
// Lastname is an attribute of myObject
}
有人可以告诉我自哪个ECMA版本的IN操作符可用以及哪些浏览器(版本)支持它?Javascript IN操作兼容性
说明:
中,操作者可以使用如下所示:
var myObject = {
Firstname: 'Foo',
Lastname: 'Bar'
};
if('Lastname' in myObject){
// Lastname is an attribute of myObject
}
它被定义在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
据MDC,它的implemented in JavaScript 1.4。
根据Wikipedia:
所以我认为你可能确定:)
因为我可以在代码的前面做'undefined ='defined!';'显然*是有益的。 – Eric 2010-05-27 11:53:45
@jAndy,好的,我已经编辑出来了。 – Skilldrick 2010-05-27 11:54:41
真的,你应该把它当作另一个答案,因为现在我们的评论没有任何意义。 – Eric 2010-05-27 11:57:26
它只在IE 5.5以上; IE 5.0是'in'的'问题浏览器',但很显然,现在担心已经过去了。 – bobince 2010-05-27 12:01:32
FWIW我在第二版中看不到它@ http://www.ecma-international.org/publications/standards/Ecma-262-arch.htm – 2010-05-27 12:02:30
@Nick:它肯定在3.0,尽管IE不会在出版时不支持它。 ECMAScript 3.1是成为第五版的发展名称。 – bobince 2010-05-27 12:03:57