详解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 相关文章推荐
jquery $.ajax入门应用二
Nov 19 Javascript
浏览器加载、渲染和解析过程黑箱简析
Nov 29 Javascript
在子窗口中关闭父窗口的一句代码
Oct 21 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
Feb 25 Javascript
jquery Validation表单验证使用详解
Sep 12 Javascript
详解AngularJS中module模块的导入导出
Dec 10 Javascript
jQuery焦点图左右转换效果
Dec 12 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
Jun 20 jQuery
在移动端使用vue-router和keep-alive的方法示例
Dec 02 Javascript
JS异步执行结果获取的3种解决方式
Feb 19 Javascript
vue 自定义组件的写法与用法详解
Mar 04 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
May 22 jQuery
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
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
分享php分页的功能模块
2015/06/16 PHP
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
js复制到剪切板的实例方法
2013/06/28 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
python统计文本文件内单词数量的方法
2015/05/30 Python
对Python中range()函数和list的比较
2018/04/19 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
wxPython实现分隔窗口
2019/11/19 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
python下载的库包存放路径
2020/07/27 Python
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
应届毕业生求职信范文
2013/12/18 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
会计工作决心书
2014/03/11 职场文书
土木工程求职信
2014/05/29 职场文书
班级心理活动总结
2014/07/04 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
不同意离婚答辩状
2015/05/22 职场文书
企业安全生产检查制度
2015/08/06 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python