浅谈javascript中for in 和 for each in的区别
区别一:
forin是javascript1.0中发布的。
foreachin是作为E4X标准的一部分在javascript1.6中发布的,而它不是ECMAScript标准的一部分。
这将意味着存在各种浏览器的兼容性问题。foreachin,对很多浏览器都不支持的。例如是不支持IE6,IE7,IE8等浏览器的。
区别二:
例: var长方形={ 高:"15", 宽:"25" };
for(variin长方形){
alert(i+","+长方形[i]);
}
结果依次是: 高,15 ; 宽,25;
foreach(variin长方形){
alert(i+","+长方形[i]);
}
结果依次是:15,undefined; 25,undefined;
两种遍历方法的变量i的值是不一样的,foreachin无法获得对象的属性名,只能获取到属性值。
最后总结一下使用建议:
(1)遍历普通数组,建议使用原生的遍历方法for,不要贪图方便,因为forin和foreachin均存在浏览器的兼容问题,不能保证它们对数组的遍历顺序(如果对顺序的不作要求的话,可以使用forin,但本人不建议),有兴趣话,可以阅读的下一篇文章《关于js中forin的缺陷浅析》。
(2)遍历对象,由于for没办法提供理想的遍历,因而只能选择其他方法。这里建议使用forin,从上面讲解的区别,forin比foreach更具优势,forin能获取索引和属性值,而foreach只能获取属性值,而且foreach在很多低版本的浏览器是不支持。
以上所述就是本文的全部内容了,希望大家能够喜欢
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短