IE8對JS通過屬性和數(shù)組遍歷解析不一樣的地方探討
更新時(shí)間:2013年05月06日 18:07:44 作者:
如果是非IE8瀏覽器例如(IE7、IE9、Chrome、FF,僅測試這幾種)通過屬性和數(shù)組遍歷,其結(jié)果是一樣的,但對于IE8,結(jié)果會有一點(diǎn)小小的差異,在IE8下會把原型鏈擴(kuò)展方法當(dāng)做一個(gè)屬性輸出,大家可以測試一下
以文謹(jǐn)記在此被瀏覽器版本差異的坑。
Array.prototype.Contains = function (str) {
if (!str)
return false;
for (var i = 0; i < this.length; i++) {
if (this[i] == str) {
return true;
}
}
return false;
}
var tmp = new Array();
tmp.push("1");
tmp.push("2");
tmp.push("3");
alert("遍歷屬性");
for ( var i in tmp ) {
alert(tmp[i]);
}
alert("遍歷數(shù)組");
for ( var i=0;i<tmp.length;i++ ) {
alert(tmp[i]);
}
如果是非IE8瀏覽器,例如(IE7、IE9、Chrome、FF,僅測試這幾種)
通過屬性和數(shù)組遍歷,其結(jié)果是一樣的。
但對于IE8,結(jié)果會有一點(diǎn)小小的差異,在IE8下會把原型鏈擴(kuò)展方法當(dāng)做一個(gè)屬性輸出,大家可以測試一下。
之所以發(fā)現(xiàn)這個(gè)差異,也是因?yàn)榻鉀Q了一個(gè)詭異的bug,有同事在代碼里面使用for ( var i in tmp )這種方式來遍歷數(shù)組的每個(gè)元素,如果正好對Array定義了原型鏈方法,則會發(fā)生這個(gè)問題。
所以建議:如果遍歷數(shù)組元素,還是應(yīng)該采用標(biāo)準(zhǔn)的寫法 for ( var i=0;i<tmp.length;i++ )。
復(fù)制代碼 代碼如下:
Array.prototype.Contains = function (str) {
if (!str)
return false;
for (var i = 0; i < this.length; i++) {
if (this[i] == str) {
return true;
}
}
return false;
}
var tmp = new Array();
tmp.push("1");
tmp.push("2");
tmp.push("3");
alert("遍歷屬性");
for ( var i in tmp ) {
alert(tmp[i]);
}
alert("遍歷數(shù)組");
for ( var i=0;i<tmp.length;i++ ) {
alert(tmp[i]);
}
如果是非IE8瀏覽器,例如(IE7、IE9、Chrome、FF,僅測試這幾種)
通過屬性和數(shù)組遍歷,其結(jié)果是一樣的。
但對于IE8,結(jié)果會有一點(diǎn)小小的差異,在IE8下會把原型鏈擴(kuò)展方法當(dāng)做一個(gè)屬性輸出,大家可以測試一下。
之所以發(fā)現(xiàn)這個(gè)差異,也是因?yàn)榻鉀Q了一個(gè)詭異的bug,有同事在代碼里面使用for ( var i in tmp )這種方式來遍歷數(shù)組的每個(gè)元素,如果正好對Array定義了原型鏈方法,則會發(fā)生這個(gè)問題。
所以建議:如果遍歷數(shù)組元素,還是應(yīng)該采用標(biāo)準(zhǔn)的寫法 for ( var i=0;i<tmp.length;i++ )。
相關(guān)文章
js將字符串轉(zhuǎn)成正則表達(dá)式的實(shí)現(xiàn)方法
js將字符串轉(zhuǎn)成正則表達(dá)式的實(shí)現(xiàn)方法。其實(shí)很簡單哦!需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11JS實(shí)現(xiàn)判斷有效的數(shù)獨(dú)算法示例
這篇文章主要介紹了JS實(shí)現(xiàn)判斷有效的數(shù)獨(dú)算法,結(jié)合實(shí)例形式分析了javascript數(shù)獨(dú)判斷的原理及相關(guān)算法實(shí)現(xiàn)、使用操作技巧,需要的朋友可以參考下2019-02-02Bootstrap柵格系統(tǒng)使用方法及頁面調(diào)整變形的解決方法
這篇文章主要介紹了Bootstrap柵格系統(tǒng)使用方法及頁面調(diào)整變形的解決方法,需要的朋友可以參考下2017-03-03詳解webpack之scss和postcss-loader的配置
本篇文章主要介紹了詳解webpack之scss和postcss-loader的配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01