详解Js里的for…in和for…of的用法


Posted in Javascript onMarch 28, 2019

之前看编程方法学,for循环的基本格式是

for(init;test;step ){
 statement
}
//例如
for(int i=0,i<10;i++){
 ...
}

后来接触了python,for循环的格式更加的简单优雅,只要一个for ……in语句就可以直接遍历对象。

for i in arry

今天看廖雪峰的官网,居然看到了js里更神奇的操作,for ……of循环,这个类似于python的for ……in循环了,虽然js里也有for ……in循环,可是遍历的是对象的属性,类似于键值对里的键key,当它遍历array的时候遍历的是array的索引,

var a = ['A', 'B', 'C'];
for (var i in a) {
 alert(i); // '0', '1', '2'
 alert(a[i]); // 'A', 'B', 'C'
}

or … of循环是ES6引入的新的语法,用for … of循环遍历集合,用法如下:

var a = ['A', 'B', 'C'];
var s = new Set(['A', 'B', 'C']);
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a) { // 遍历Array
 alert(x);//'A', 'B', 'C'
}
for (var x of s) { // 遍历Set
 alert(x);//'A', 'B', 'C'
}
for (var x of m) { // 遍历Map
 alert(x[0] + '=' + x[1]);//1='x',2='y',3='z'
}

for … in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。
当我们手动给Array对象添加了额外的属性后,for … in循环将带来意想不到的意外效果:

var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x in a) {
 alert(x); // '0', '1', '2', 'name'
}

for … in循环将把name包括在内,但Array的length属性却不包括在内。

for … of循环则完全修复了这些问题,它只循环集合本身的元素:

var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x of a) {
 alert(x); // 'A', 'B', 'C'
}

以上所述是小编给大家介绍的Js里的for…in和for…of的用法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
DHTML 中的绝对定位
Nov 26 Javascript
IFrame跨域高度自适应实现代码
Aug 16 Javascript
对new functionName()定义一个函数的理解
May 22 Javascript
jQuery回调函数的定义及用法实例
Dec 23 Javascript
javascript使用appendChild追加节点实例
Jan 12 Javascript
JavaScript实现强制重定向至HTTPS页面
Jun 10 Javascript
js实现动态加载脚本的方法实例汇总
Nov 02 Javascript
jquery div模态窗口的简单实例
May 28 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
Jun 21 Javascript
vue.js实现条件渲染的实例代码
Jun 22 Javascript
vue中页面跳转拦截器的实现方法
Aug 23 Javascript
解析原生JS getComputedStyle
May 25 Javascript
ES7之Async/await的使用详解
Mar 28 #Javascript
详解vue-cli3多环境打包配置
Mar 28 #Javascript
微信小程序之onLaunch与onload异步问题详解
Mar 28 #Javascript
详解vue使用插槽分发内容slot的用法
Mar 28 #Javascript
详解一个基于套接字实现长连接的express
Mar 28 #Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
Mar 28 #Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
Mar 28 #Javascript
You might like
抓取YAHOO股票报价的类
2009/05/15 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
Prototype使用指南之selector.js说明
2008/10/26 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
2020/07/21 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
python基础教程之while循环
2019/08/14 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
化学教师自荐信范文
2013/12/28 职场文书
高中校园广播稿
2014/01/11 职场文书
市场营销工作计划书
2014/09/15 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
初中语文教学研修日志
2015/11/13 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
教你使用pyinstaller打包Python教程
2021/05/27 Python
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
js 数组 fill() 填充方法
2021/11/02 Javascript
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers