浅谈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发送和接收XML数据的处理方法与代码
Nov 13 Javascript
JavaScript是否可实现多线程  深入理解JavaScript定时机制
Dec 22 Javascript
跟我一起学写jQuery插件开发方法(附完整实例及下载)
Apr 01 Javascript
jQuery实现用方向键控制层的上下左右移动
Jan 13 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
May 13 Javascript
Javascript小技能总结(推荐)
Jun 02 Javascript
JS中常用的输出方式(五种)
Jun 12 Javascript
浅谈javascript中的三种弹窗
Oct 21 Javascript
webpack打包单页面如何引用的js
Jun 07 Javascript
Angular中ng-options下拉数据默认值的设定方法
Jun 21 Javascript
JSON数据中存在单个转义字符“\”的处理方法
Jul 11 Javascript
vue实现图片懒加载的方法分析
Feb 05 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利用递归实现删除文件目录的方法
2016/09/23 PHP
php生成word并下载代码实例
2019/03/15 PHP
js substr、substring和slice使用说明小记
2011/09/15 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
jquery编写日期选择器
2017/03/16 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
Angularjs的键盘事件的绑定
2017/07/27 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
Python单例模式实例分析
2015/01/14 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
python flask搭建web应用教程
2019/11/19 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
民族团结先进个人材料
2014/02/05 职场文书
老公爱的承诺书
2014/03/31 职场文书
安全生产责任书范本
2014/04/15 职场文书
给校长的建议书300字
2014/05/16 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
2014个人年度工作总结
2014/12/15 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript