浅谈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 相关文章推荐
JavaScript 的继承
Oct 01 Javascript
jQuery中live方法的重复绑定说明
Oct 21 Javascript
JavaScript中的onerror事件概述及使用
Apr 01 Javascript
JS中的数组的sort方法使用示例
Jan 22 Javascript
JavaScript利用append添加元素报错的解决方法
Jul 01 Javascript
RequireJS入门一之实现第一个例子
Sep 30 Javascript
jQuery Mobile和HTML5开发App推广注册页
Nov 07 Javascript
JQuery实现动态操作表格
Jan 11 Javascript
JavaScript手风琴页面制作
May 17 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
May 29 Javascript
浅谈layui 绑定form submit提交表单的注意事项
Oct 25 Javascript
JavaScript实现点击切换验证码及校验
Jan 10 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导出oracle库的php代码
2009/04/20 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
屏蔽script注入小例子
2013/11/12 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
vue.js的安装方法
2017/05/12 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
js实现表格数据搜索
2020/08/09 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
Python复制文件操作实例详解
2015/11/10 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
留学自荐信
2013/10/10 职场文书
成人教育自我鉴定
2013/11/01 职场文书
英文自我鉴定
2013/12/10 职场文书
会计演讲稿范文
2014/05/23 职场文书
python中的random模块和相关函数详解
2022/04/22 Python
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle