浅谈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函数
Aug 01 Javascript
jquery操作checkbox实现全选和取消全选
May 02 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
Mar 25 Javascript
jQuery实现文本展开收缩特效
Jun 03 Javascript
Vue2.0实现购物车功能
Jun 05 Javascript
浅谈angular2 组件的生命周期钩子
Aug 12 Javascript
axios post提交formdata的实例
Mar 16 Javascript
vue-router history模式下的微信分享小结
Jul 05 Javascript
VUE引入第三方js包及调用方法讲解
Mar 01 Javascript
Vue实现点击按钮复制文本内容的例子
Nov 09 Javascript
简单了解vue 插值表达式Mustache
Jul 22 Javascript
Vue scoped及deep使用方法解析
Aug 01 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
一个多文件上传的例子(原创)
2006/10/09 PHP
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
13个PHP函数超实用
2015/10/21 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
python 中split 和 strip的实例详解
2017/07/12 Python
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
python pandas获取csv指定行 列的操作方法
2019/07/12 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
会计学个人自荐信模板
2013/12/13 职场文书
理工科学生的自我评价
2013/12/15 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB
nginx内存池源码解析
2021/11/20 Servers
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis