浅谈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 相关文章推荐
使用jQuery简化Ajax开发 Ajax开发入门
Oct 14 Javascript
HTML上传控件取消选择
Mar 06 Javascript
jsonp原理及使用
Oct 28 Javascript
js使用循环清空某个div中的input标签值
Sep 29 Javascript
学习Bootstrap组件之下拉菜单
Jul 28 Javascript
JavaScript中的prototype原型学习指南
May 09 Javascript
基于jQuery实现仿百度首页选项卡切换效果
May 29 Javascript
jQuery实现的右下角广告窗体跟随效果示例
Sep 16 Javascript
JS不完全国际化&本地化手册 之 理论篇
Sep 27 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
Jan 07 Javascript
vue组件中使用props传递数据的实例详解
Apr 08 Javascript
在vue中使用SockJS实现webSocket通信的过程
Aug 29 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
原生JS实现网络彩票投注效果
2016/09/25 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
python清除字符串中间空格的实例讲解
2018/05/11 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
Python语法分析之字符串格式化
2019/06/13 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
python绘制规则网络图形实例
2019/12/09 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
详细分析Python collections工具库
2020/07/16 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
法务专员岗位职责
2014/01/02 职场文书
医院实习接收函
2014/01/12 职场文书
十佳大学生事迹材料
2014/01/29 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
Python中with上下文管理协议的作用及用法
2022/03/18 Python