浅谈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 相关文章推荐
JS 类型转换常见方法小结
May 31 Javascript
非常棒的10款jQuery 幻灯片插件
Jun 14 Javascript
九种js弹出对话框的方法总结
Mar 12 Javascript
JavaScript中的console.dir()函数介绍
Dec 29 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
Aug 06 Javascript
JavaScript数据类型学习笔记分享
Sep 01 Javascript
jQuery根据ID、CLASS、等获取对象的实例
Dec 04 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 Javascript
JS奇技之利用scroll来监听resize详解
Jun 15 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
Aug 10 Javascript
Vue 进阶之路(三)
Apr 18 Javascript
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
原生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
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
弄了个检测传输的参数是否为数字的Function
2006/12/06 PHP
PHP JSON格式数据交互实例代码详解
2011/01/13 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
Angular路由简单学习
2016/12/26 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
浅谈Vue.use到底是什么鬼
2020/01/21 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
sqlalchemy对象转dict的示例
2014/04/22 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
python pygame实现2048游戏
2018/11/20 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
大学生就业推荐信范文
2013/11/29 职场文书
冰淇淋店创业计划书范文
2013/12/27 职场文书
英文商务邀请信
2014/01/22 职场文书
设计师求职信模板
2014/05/06 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
停车位租赁协议书
2014/09/24 职场文书
小学教师个人总结
2015/02/05 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
离婚起诉状范本
2015/05/19 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js