有人可以告訴我自哪個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