JavaScript 中 for in 和 for each in 的用法和区别

发布于 2021-11-19 12:39:30 字数 1094 浏览 1247 评论 0

区别一:

  • for in 是JavaScript 1.0 中发布的。
  • for each in 是作为E4X标准的一部分在 JavaScript 1.6中发布的,而它不是 ECMAScript 标准的一部分。

这将意味着存在各种浏览器的兼容性问题。for each in,对很多浏览器都不支持的。例如是不支持 IE6,IE7,IE8 等浏览器的。

区别二:

// 例:  var 长方形= {  高:"15",  宽:"25"  };

for (var i in 长方形){
    alert( i + "," + 长方形[i] );
}
// 结果依次是:  高,15  ;    宽,25 ;

for each (var i in 长方形){
    alert( i + "," + 长方形[i] );
}
// 结果依次是: 15, undefined ;    25, undefined;

两种遍历方法的变量i的值是不一样的,for each in 无法获得对象的属性名,只能获取到属性值。

最后总结一下使用建议:

  • (1)遍历普通数组,建议使用原生的遍历方法 for,不要贪图方便,因为 for in 和 for each in 均存在浏览器的兼容问题,不能保证它们对数组的遍历顺序(如果对顺序的不作要求的话,可以使用 for in ,但本人不建议),有兴趣话,可以阅读的下一篇文章《for in 的浏览器兼容问题》
  • (2)遍历对象,由于 for 没办法提供理想的遍历,因而只能选择其他方法。这里建议使用for in ,从上面讲解的区别,for in 比 for each 更具优势,for in 能获取索引和属性值,而 for each 只能获取属性值,而且 for each 在很多低版本的浏览器是不支持。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

秋意浓

暂无简介

文章
评论
512 人气
更多

推荐作者

迎风吟唱

文章 0 评论 0

qq_hXErI

文章 0 评论 0

茶底世界

文章 0 评论 0

捎一片雪花

文章 0 评论 0

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文