浅谈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类 from qq
Nov 13 Javascript
使用jQuery简化Ajax开发 Ajax开发入门
Oct 14 Javascript
深入理解Javascript中this的作用域
Aug 12 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
JavaScript常用标签和方法总结
Sep 01 Javascript
jQuery 常见小例汇总
Dec 14 Javascript
JS轮播图实现简单代码
Feb 19 Javascript
jQuery基于cookie实现换肤功能实例
Oct 14 jQuery
Angular 项目实现国际化的方法
Jan 08 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
Apr 26 Javascript
详解SPA中前端路由基本原理与实现方式
Sep 12 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
Nov 13 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取得一个类的属性和方法的实现代码
2011/05/22 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
jquery封装的对话框简单实现
2013/07/21 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
python使用socket连接远程服务器的方法
2015/04/29 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
检测tensorflow是否使用gpu进行计算的方式
2020/02/03 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
html5唤起app的方法
2017/11/30 HTML / CSS
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
英国著名的药妆网站:Escentual
2016/07/29 全球购物
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
计算机本科生自荐信
2013/10/15 职场文书
药品质量检测应届生求职信
2013/11/14 职场文书
事业单位辞职信范文
2014/01/19 职场文书
入党申请自荐书范文
2014/02/11 职场文书
经营目标管理责任书
2014/07/25 职场文书
出生证明格式
2015/06/15 职场文书
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL
JS高级程序设计之class继承重点详解
2022/07/07 Javascript
Python创建SQL数据库流程逐步讲解
2022/09/23 Python