浅谈javascript中for in 和 for each in的区别

 更新时间:2015年04月23日 09:42:05   投稿:hebedich  
两个的作用都用来遍历对象,但为什么有了for in语句了还要for each in语句呢,后来看了下for each in开发的文档,for each in是作为E4X标准的一部分在javascript 1.6中发布的,而且它不是ECMAScript标准的一部分

区别一:

        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 ,但本人不建议),有兴趣话,可以阅读的下一篇文章《关于js中for in的缺陷浅析》。

    (2)遍历对象,由于for没办法提供理想的遍历,因而只能选择其他方法。这里建议使用for in ,从上面讲解的区别,for in比for each 更具优势,for in能获取索引和属性值,而for each只能获取属性值,而且for each在很多低版本的浏览器是不支持。

以上所述就是本文的全部内容了,希望大家能够喜欢

相关文章

  • JavaScript实现前端实时搜索功能

    JavaScript实现前端实时搜索功能

    这篇文章主要为大家详细介绍了JavaScript实现前端实时搜索功能 ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 原生js实现五子棋游戏

    原生js实现五子棋游戏

    这篇文章主要为大家详细介绍了原生js实现五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • 解决Js先触发失去焦点事件再执行点击事件的问题

    解决Js先触发失去焦点事件再执行点击事件的问题

    今天小编就为大家分享一篇解决Js先触发失去焦点事件再执行点击事件的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • ES6中的WeakMap和WeakSet特性和用途详解

    ES6中的WeakMap和WeakSet特性和用途详解

    在JavaScript的ES6版本中,引入了WeakMap和WeakSet这两种新的数据结构,与Map和Set相比,它们有一些特殊的特点和用途,使它们在处理内存泄漏问题、管理对象私有数据、处理对象的唯一性等场景中有显著的优势,本文将深入探讨WeakMap和WeakSet的特性和用途,一起看看吧
    2023-12-12
  • uniapp高频面试题及答案合集

    uniapp高频面试题及答案合集

    uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可以发布到IOS、Android、Web(响应式)、以及各种小程序、快应用等多个平台,下面这篇文章主要给大家介绍了关于uniapp高频面试题及答案的相关资料,需要的朋友可以参考下
    2023-02-02
  • Js注册协议倒计时的小例子

    Js注册协议倒计时的小例子

    Js注册协议倒计时的小例子,需要的朋友可以参考一下
    2013-06-06
  • 让任务管理器中的CPU跳舞的js代码

    让任务管理器中的CPU跳舞的js代码

    下面的代码就是利用js控制cpu的占有率,实现时高时低效果
    2008-11-11
  • webpack如何自动生成网站图标详解

    webpack如何自动生成网站图标详解

    这篇文章主要给大家介绍了关于webpack如何自动生成网站图标的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • 解决bootstrap中下拉菜单点击后不关闭的问题

    解决bootstrap中下拉菜单点击后不关闭的问题

    今天小编就为大家分享一篇解决bootstrap中下拉菜单点击后不关闭的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 用js判断输入是否为中文的函数

    用js判断输入是否为中文的函数

    本篇文章主要是对js判断输入是否为中文的函数进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03

最新评论