详解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全局事件ajaxStart为特定请求实现提示效果的代码
Dec 30 Javascript
AngularJS中取消对HTML片段转义的方法例子
Jan 04 Javascript
js实现选中复选框文字变色的方法
Aug 14 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
Sep 14 Javascript
jQuery实现图片轮播效果代码
Sep 27 Javascript
深入理解bootstrap框架之第二章整体架构
Oct 09 Javascript
javascript中活灵活现的Array对象详解
Nov 30 Javascript
js的三种继承方式详解
Jan 21 Javascript
微信小程序对接七牛云存储的方法
Jul 30 Javascript
在Vue组件上动态添加和删除属性方法
Feb 23 Javascript
js实现星星海特效的示例
Sep 28 Javascript
JS模拟实现京东快递单号查询
Nov 30 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
php URL编码解码函数代码
2009/03/10 PHP
phpMyAdmin 安装及问题总结
2009/05/28 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
top.location.href 没有权限 解决方法
2008/08/05 Javascript
js setattribute批量设置css样式
2009/11/26 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
小程序实现多列选择器
2019/02/15 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
python版本单链表实现代码
2018/09/28 Python
python实现按关键字筛选日志文件
2019/12/24 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
python保留格式汇总各部门excel内容的实现思路
2020/06/01 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
交通安全寄语大全
2014/04/08 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
企业党员个人自我评价
2014/09/20 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
大学生学期个人总结
2015/02/12 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python