for...in的改进版for...of
for...in 用起来似乎还不错,为什么又弄个 for...of 呢?
来看个例子:
'user strict'
var arr = [12,13,14,15,16];
for(var i in arr){
console.log(i);
}
// 遍历结果为0 1 2 3 4(仅为数组下标)
for...of 这里就体现出优势了
同样的例子将 for...in 换成 for...of 就可直接遍历数组元素的内容
'user strict'
var arr = [12,13,14,15,16];
for(var i of arr){
console.log(i);
}
// 遍历结果为0 1 2 3 4(仅为数组下标)
遍历 Array
可以采用下标循环,遍历 Map
和 Set
就无法使用下标。为了统一集合类型,ES6标准引入了新的 iterable
类型,Array
、Map
和 Set
都属于 iterable
类型
for..of 则可专门针对 iterable 类型进行遍历
再看个比较典型的例子:
var arr = [12,13,14,15,16];
arr.attr = 'as';
for(var i in arr){
console.log(arr[i]);
}
// 结果 12 13 14 15 16 as(for...in不仅遍历出arr数组的元素还把arr的属性也遍历出来)
这里使用 for...of 仅遍历数组元素
var arr = [12,13,14,15,16];
arr.attr = 'as';
for(var i of arr){
console.log(i);
}
// 结果 12 13 14 15 16(不会出现 for...in 的情况)
for...in的改进版for...of的更多相关文章
- [转]C语言文件输入/输出ACM改进版(freopen函数)
C语言文件输入/输出ACM改进版(freopen函数) 2009年5月27日 10:379,457 浏览数发表评论阅读评论 文章作者:姜南(Slyar) 文章来源:Slyar Home (www. ...
- ADO.NET改进版
ADO.NET从概念上来说是指定义一种与数据源进行交互的面向对象类库.类库即类的集合,也就是说ADO.NET主要是提供一了一些实现与数据源进行交互的一些类和接口. 其实就我个人看来,我觉得ADO.NE ...
- C#共享内存类改进版
原文 C#共享内存类改进版 改进说明及源码实例下载见:http://blog.csdn.net/zzh8845/archive/2008/11/22/3349963.aspx ShareMem.cs ...
- 改进版getpass库
编程伊始 正式实施 改进版 源码 以数字显示 以自定义分隔符delimiter显示 如何使用 下载及安装 在您的代码中使用 源码下载 总结 用过Linux的都知道,尤其是进行使用包管理软件类似于apt ...
- 忘记时间戳的存在——Yii2超实用的自动更新时间戳的Behavior(改进版)
本文改进了Yii2中内置行为类TimestampBehavior,使得时间戳字段(如created_at,updated_at) 完全自己更新,方便得让你忘记它们的存在. Yii2的内置行为类Time ...
- 接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]
基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版] by:授客 QQ:1033553122 由于篇幅问题,,暂且采用网盘分享的形式: 下载地址: [授客] ...
- [firefox] Scrapbook Plus的改进版Scrapbook X
我在两年前的博文<Firefox上一些我用于知识管理的扩展> 里面提到过我在用Scrapbook Plus这个Firefox扩展, 用它来撷取网页构建自己的知识库(可以加标注.可以搜索.可 ...
- 2017-2018-1 20155326 《信息安全系统设计基础》第四周学习总结及myod改进版的补交
2017-2018-1 20155326 <信息安全系统设计基础>第四周学习总结及myod改进版的补交 学习内容 补充完成课上没有完成的内容 学习教材附录A,第十章内容 参考别出心裁的Li ...
- div在页面垂直居中方法---增强改进版
div在页面垂直居中方法---改进版 .wrap{ background: #ffffff; position:absolute; margin:auto; top:; bottom:; left:; ...
- 接口自动化 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)
基于python实现的http+json协议接口自动化测试框架(实用改进版) by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 目录 1. ...
随机推荐
- VirtualBox导致Vmware的虚拟机桥接模式网络不通
VMware内的虚拟机,设置为桥接后,无法连接外网.物理主机IP地址:192.168.0.60,虚拟机IP地址:192.168.0.61,网关地址:192.168.0.1虚拟机网络采用桥接模式: 从物 ...
- Forth嵌套定义的执行过程图示
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- Python语言:下载上证股票数据程序
from urllib.request import urlretrieve f = open('SHA.csv', 'r')for line in f: data = line.split(',') ...
- git多账号切换
修改: git config --global user.name "Your_Username" git config --global user.email username@ ...
- 2019-04-16-day033-锁与队列
内容回顾 几个问题 概念多,练习少 不问问题 概念?代码? Process类 并发并行 并发 是同一时间段内多个任务交替使用同一个cpu 并行 是在同一个时刻多个任务在不同的cpu上同时执行 同步异步 ...
- Homebrew简介及安装,Mac 包管理
Homebrew简介及安装 Homebrew官网 http://brew.sh/index_zh-cn.html Homebrew是神马 Linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两 ...
- requests模块的使用
requests模块 什么是request模块:requests是python原生一个基于网络请求的模块,模拟浏览器发起请求. requests-get请求 # get请求 import reques ...
- Vagrant 命令详解
1.查看当前登录的用户系统上所有活动的Vagrant环境的状态. vagrant global-status参数:--prune 清除列表中的无效条目 ... ...
- des加密破解
在爬取某些网站时, 登录等重要操作的返回结果是des加密后的. 如何破解 1, Python 语言采用 pyDes 作为 DES 加解密处理的包. 2,通过请求 http://tool.chacuo. ...
- XXS level7
(1)输入与第六关相同的Payload:"><A HREF="javascript:alert()"> 查看页面源代码,发现“herf"被过滤 ...