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

发布于 2021-11-19 12:39:30 字数 1094 浏览 1245 评论 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技术交流群

发布评论

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

关于作者

秋意浓

暂无简介

0 文章
0 评论
510 人气
更多

推荐作者

Gabu-gabumon

文章 0 评论 0

qq_CgiN62

文章 0 评论 0

荔枝明

文章 0 评论 0

¤→小豸慧

文章 0 评论 0

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