ES2015 for of 循环
一、为什么ES2015 引入 for of 循环
我们先来回想一下,ES2015以前与遍历相关的方法
- for循环:遍历普通的数组
- for in : 遍历键值对
- 一些函数式的遍历方法 ,比如forEach
这些遍历方式都有一定的局限性,比如说forEach() 不能退出循环
// for of 基本语法
const arr = [100,200,300,400]
for(const item of arr){console.log(item)if(item > 100){break // for of 可以用退出循环}
}
arr.forEach() // 不能退出循环// 为了能够终止遍历, 需要借用以下方法
arr.some() // return true 终止遍历
arr.every() // return false 终止遍历
ES2015引入了 for of 循环 ,作为遍历所有数据结构的统一方式
二、for of 循环基本使用
数组、伪数组、Set、Map 对象 都可以直接 用for of 遍历
const m = new Map()
m.set('foo',123)
m.set('bar',345)
for(const item of m){console.log(item)//item 键和值都会拿到 ['foo',123]
}
// 数组解构
for(const [key,value] of m){console.log(key,value)
}
for of 遍历对象可以吗?
const obj = {name:'jack'}
for(const item of obj){console.log(item)
}
诶?不是说 for of 循环可以作为遍历所有数据结构的统一方式吗?
为什么遍历对象报错了呢?
三、了解for…of 的内部原理
看下一篇文章: ES2015 Iterable(可迭代的)接口
ES2015 for of 循环相关推荐
- 我的笔记--ECMAScript 新特性
文章目录 ECMAScript 概述 ES2015 概述 ES2015 let 与块级作用域 ES2015 const ES2015 数组的解构 ES2015 对象的解构 ES2015 模板字符串 E ...
- Node.js Web开发_第二章(2)
电子书推荐 Digital Forensics with Kali Linux, 2nd Edition Debugging CSS Practical Entity Framework Core 6 ...
- 中兴面试总结,华为。技术,市场
1,软件测试,如何把这个测试做的更好. 进到一个新项目,作为测试人员应该都是想把测试做好,项目在符合客户质量要求的情况下按时交付的吧.但往往都事与愿违,造成这个结果的原因有很多很多.通过这段时间做自动 ...
- 30分钟掌握ES6/ES2015核心内容
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- 从一道题浅说 JavaScript 的事件循环
阮老师在其推特上放了一道题: new Promise(resolve => {resolve(1);Promise.resolve().then(() => console.log(2)) ...
- ES6/ES2015核心内容(上)
ECMAScript 6(以下简称 ES6)是 JavaScript 语言的下一代标准.因为当前版本的 ES6 是在 2015 年发布的,所以又称 ECMAScript 2015.· 也就是说,ES6 ...
- 30分钟掌握ES6/ES2015核心内容(上)
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- boost log 能不能循环覆盖_记一次for循环中let是声明还是赋值
//同事讨论遇到一个很有意思的话题 //for循环里面的i循环第二次是赋值还是重新声明 for(let i=0;i<100;i++){console.log(i) } //对于这个问题正常解释 ...
- 掌握ES6/ES2015核心内容
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- 30分钟掌握ES6/ES2015核心内容 1
2019独角兽企业重金招聘Python工程师标准>>> ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所 ...
最新文章
- 用leangoo敏捷开发看板工具做技术支持
- ENGINEER 003:配置IPv6地址
- Python入门学习笔记11(静态方法、类方法与属性方法)
- Oracle监控的关键指标有哪些
- 闪迪u盘量产工具万能版_我身边的“闪迪色”闪迪彩色手机U盘系列| 大家测573...
- 图论--最短路径--观光旅游
- 转两好文防丢:Debian 版本升级/降级 Linux 应用程序失去输入焦点问题的解决...
- jrtplib java,jrtplib 分包处理
- 怎么隐藏splitcontainer分界线
- iatf16949内审员_IATF16949:2016内审员试题及答案.pdf
- python——esc按键按下与识别
- K8sAPI接口文档
- 春款童装产品做短视频营销应该怎么做?短视频营销策略分析
- Web前端基础笔记:第十章 CSS-背景
- 10.setTimeout和setInterval的区别以及模拟实现:
- 通俗来理解 ARM芯片内核,架构,指令集,软核和硬核之间的关系
- 探讨mos管串并联分裂问题
- jquery.tipsy实现标题提示功能
- python ai教程_带有Python的AI教程
- 字节跳动、今日头条、阿里爸爸都在使用Flutter,你还有拒绝的理由?
热门文章
- Pycharm安装第三方包报错怎么办
- 计算机编程导论python程序设计答案-计算机科学与Python编程导论_学堂云答案
- 微信开放平台授权java_微信开放平台授权登录(java版)
- 用Excel也能制作PS,今天就让你涨涨见识!
- Lake Shore Cernox低温温度传感器之温度探头
- 【模块】MAX31865 铂电阻温度检测器模块 RTD传感器PT100-PT1000
- 【推荐系统论文精读系列】(十二)--Neural Factorization Machines for Sparse Predictive Analytics
- 【无标题】c++创建一个三角形类,计算周长和面积
- 如何降低计算机版本,苹果系统怎么降级到好用的老版本
- Centos迁移旧硬盘的数据