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


Posted in Javascript onApril 23, 2015

区别一:

        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 相关文章推荐
ASP SQL防注入的方法
Dec 25 Javascript
Javascript解决常见浏览器兼容问题的12种方法
Jan 04 Javascript
详解参数传递四种形式
Jul 21 Javascript
jquery表单验证插件formValidator使用方法
Apr 01 Javascript
详解PHP中pathinfo()函数导致的安全问题
Jan 05 Javascript
树结构之JavaScript
Jan 24 Javascript
js 开发之autocomplete="off"在chrom中失效的解决办法
Sep 28 Javascript
Vue实现用户自定义字段显示数据的方法
Aug 28 Javascript
vuex直接赋值的三种方法总结
Sep 16 Javascript
vue实现移动端省市区选择
Sep 27 Javascript
Node.js 在本地生成日志文件的方法
Feb 07 Javascript
通过实例解析json与jsonp原理及使用方法
Sep 27 Javascript
原生js和jquery实现图片轮播特效
Apr 23 #Javascript
使用纯javascript实现经典扫雷游戏
Apr 23 #Javascript
jQuery图片特效插件Revealing实现拉伸放大
Apr 22 #Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
Apr 22 #Javascript
javascript解三阶幻方(九宫格)
Apr 22 #Javascript
javascript递归回溯法解八皇后问题
Apr 22 #Javascript
使用C++为node.js写扩展模块
Apr 22 #Javascript
You might like
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
php中引用符号(&)的使用详解
2013/11/13 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
TP5.0框架实现无限极回复功能的方法分析
2019/05/04 PHP
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
[02:31]2018年度DOTA2最具人气选手-完美盛典
2018/12/16 DOTA
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
python2和python3哪个使用率高
2020/06/23 Python
linux面试题参考答案(4)
2014/09/21 面试题
白酒业务员岗位职责
2013/12/27 职场文书
教师旷工检讨书
2014/01/18 职场文书
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
优秀党员申报材料
2014/12/18 职场文书
仰望星空观后感
2015/06/10 职场文书
超市店长竞聘书
2015/09/15 职场文书