文档章节

关于js中for in和foreach in的区别

CoderPeng
 CoderPeng
发布于 2015/11/17 11:35
字数 462
阅读 4
收藏 0

js 中for in 和foreach in的区别
两个的作用都用来遍历对象,但为什么有了for in语句了还要foreach in语句呢,后来看了下foreach in开发的文档,foreach in是作为E4X标准的一部分在javascript 1.6中发布的,而且E4X不是ECMAScript标准的一部分。

foreach…in语句已被废弃,E4X中的大部分特性已被删除,但考虑到向后兼容,foreach…in只会被禁用而不会被删除,可以使用ES6中新的for…of语句来代替。


var 小青年 = { 身高:"181CM", 体重:"62公斤", 年龄:23 }; for (var i in 小青年){ document.write("i = " + i + "..................小青年[i] = " + 小青年[i] + "<br>"); } /* 结果 i = 身高..................小青年毛[i] = 181CM i = 体重..................小青年[i] =62公斤 i = 年龄..................小青年[i] = 23 */ foreach (var i in 小青年){ document.write("i = " + i + "..................小青年[i] = " + 小青年[i] + "<br>"); } /* 结果 i = 181CM..................小青年[i] = undefined i = 62公斤..................小青年[i] = undefined i = 23..................小青年[i] = undefined */

注意变量i的值是不一样的,for each in无法获得对象的属性名,只能获取到属性值

如果你想遍历对象,建议还是使用for in
1,for in在遍历对象伤还是比for each in功能更加强大for in不仅能遍历处所有属性名和属性值,foreach in只能遍历出属性值
2,for in是javascript 1.0就出来的语法,foreach in是javascript 1.6才出来的语法,很多浏览器是 不支持的,比如IE6,7,8是不支持的,所以还是推荐使用for in


同时两者都能实现对数组的遍历
建议大家在遍历数组时,推荐不要使用for in语句和for each in语句,因为它们两无法保证遍历数组的顺序。

本文转载自:http://www.cnblogs.com/liupeng61624/p/3932030.html

上一篇: javascript学习6
下一篇: vs2010快捷键
CoderPeng
粉丝 0
博文 140
码字总数 78649
作品 0
青浦
程序员
私信 提问
深入了解JavaScript 中的For循环之详解

前言(https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=cklf8z5w): 今天我想分享一个有关于循环筛选的知识点,也许是前端小白的你首先想到的是用for循环做筛选,但我这种小...

苏南-首席填坑官
01/10
22
0
关于遍历,看这篇文章就足够了【find()、findIndex()、forEach()、splice()、slice()详解】

在日常写JS逻辑的时候,有小伙伴经常问及我一些遍历相关的逻辑,很多都是很基础性的知识点,只不过需要组合一下就可以实现效果。所以,我觉得还是有必要举几个例子来说明一下这几个js常用的方...

冯冯墨墨
03/31
0
0
JavaScript 的 4 种数组遍历方法: for VS forEach() VS for/in VS for/of

译者按: JS 骚操作。 原文:For vs forEach() vs for/in vs for/of in JavaScript 译者: Fundebug 本文采用意译,版权归原作者所有 我们有多种方法来遍历 JavaScript 的数组或者对象,而它们...

Fundebug
03/11
0
0
前端高频面试题 JavaScript篇

以下问题都来自于互联网前端面经分享,回答为笔者通过查阅资料加上自身理解总结,不保证解答的准确性,有兴趣讨论的同学可以留言或者私信讨论。 1.JS的异步机制? 2.闭包如何实现? 3.原型链、...

大雄的学习人生
2018/06/25
0
0
每个JavaScript工程师都应懂的33个概念

摘要: 基础很重要啊! 原文:33 concepts every JavaScript developer should know 译文:每个 JavaScript 工程师都应懂的33个概念 作者:stephentian Fundebug经授权转载,版权归原作者所有...

Fundebug
2018/10/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

同名依赖,多次引入导致的程序错误

表现: 本地测试正常,打包上线后报错找不到某个方法(缺少依赖),检测依赖发现,同名依赖有两个版本。 解决:删除一个,程序正常

避难所
28分钟前
3
0
在HTML中的下拉框中实现超连接

<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <link rel="canonical" href="https://blog.csdn.net/weixin_34228617/article/details/86130280"/> ......

mickelfeng
33分钟前
3
0
Content7关闭防火墙命令

在外部访问CentOS中部署应用时,需要关闭防火墙。 关闭防火墙命令:systemctl stop firewalld.service 开启防火墙:systemctl start firewalld.service 关闭开机自启动:systemctl disable f...

无名氏的程序员
34分钟前
3
0
分布式存储原理:TiDB

浮躁的码农
47分钟前
7
0
CSS实现圆角边框的完美解决方案

css实现图片圆角,兼容所有浏览器: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 <style type= "text/css" > /*通用样式--容器宽度值*/ .s......

前端老手
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部