浅谈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 相关文章推荐
在浏览器中获取当前执行的脚本文件名的代码
Jul 19 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
Mar 07 Javascript
JavaScript数组操作函数汇总
Aug 05 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
BootStrap组件之进度条的基本用法
Jan 19 Javascript
浅析Angular2子模块以及异步加载
Apr 24 Javascript
bootstrap是什么_动力节点Java学院整理
Jul 14 Javascript
利用纯JS实现像素逐渐显示的方法示例
Aug 14 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
Sep 11 Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
May 16 Javascript
Vue混入mixins滚动触底的方法
Nov 22 Javascript
JS精髓原型链继承及构造函数继承问题纠正
Jun 16 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
php自动加载的两种实现方法
2010/06/21 PHP
简单的JS多重继承示例
2008/03/13 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
Angular实现响应式表单
2017/08/04 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
React diff算法的实现示例
2018/04/20 Javascript
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
python实现FTP服务器服务的方法
2017/04/11 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
python实现C4.5决策树算法
2018/08/29 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
使用 Django Highcharts 实现数据可视化过程解析
2019/07/31 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
python常用运维脚本实例小结
2020/02/14 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
Python 如何测试文件是否存在
2020/07/31 Python
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
工程地质勘察专业大学生求职信
2013/10/13 职场文书
三查三看党性分析材料
2014/02/18 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
文明市民先进事迹
2014/05/15 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python