浅谈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 loading加载效果实现代码
Nov 24 Javascript
jQuery控制iFrame(实例代码)
Nov 19 Javascript
js 获取、清空input type="file"的值(示例代码)
Dec 24 Javascript
JQuery获取表格数据示例代码
May 26 Javascript
jQuery实现contains方法不区分大小写的方法
Feb 13 Javascript
jQuery同步提交示例代码
Dec 12 Javascript
Bootstrap布局之栅格系统详解
Jun 13 Javascript
JavaScript实现图片瀑布流和底部刷新
Jan 02 Javascript
jQuery实现选项卡功能(两种方法)
Mar 08 Javascript
vue.js 实现点击展开收起动画效果
Jul 07 Javascript
vue实现自定义H5视频播放器的方法步骤
Jul 01 Javascript
create-react-app中添加less支持的实现
Nov 15 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生成条形码大揭秘
2015/09/24 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
Python判断有效的数独算法示例
2019/02/23 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
浅谈Python __init__.py的作用
2020/10/28 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
2014年平安创建工作总结
2014/11/24 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python