博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【JavaScript 】for 循环进化史
阅读量:6253 次
发布时间:2019-06-22

本文共 1493 字,大约阅读时间需要 4 分钟。

ECMAScript 6已经逐渐普及,经过二十多年的改进,很多功能也有了更成熟的语句,比如 for 循环

这篇博客将介绍一下从最初的 for 循环,到 ES6 的 for-of 等四种遍历方法

先定义一个数组:

const myArray = [1, 5, 9];myArray.name = 'wise'

在控制台中打印这个数组,会看到这个数组的全貌:

 

一、 for

相信大部分开发工作者,最初遍历数组的方法都是使用 for 循环:

for ( let i = 0; i < myArray.length; i++ ) {    console.log(myArray[i]);}

作为初代循环语句,for 语句仅仅解决了遍历这一功能,但冗长的代码还是显得过于笨重

 

二、 for-in

相比 for 语句,for-in 就轻巧得多,但是 for-in 通常用来遍历对象,如果遍历数组的话...

for ( let key in myArray ) {    console.log(key);}

直接遍历的话,会打印数组的 index,而 index 是 string 类型

如果编程的时候不注意,很可能在无意中进行了字符串的计算: "1"+"1"="11"

所以使用 for-in 遍历数组的正确姿势应该是:

for ( let key in myArray) {    console.log(myArray[key]);}

和 for 循环不同,for-in 语句还将自定义属性 "name" 的值 "wise" 打印了出来

所以用 for-in 遍历数组这种事,还是别在开发的时候干了

 

三、 forEach

ES5 发布之后,js 新增了内建方法 forEach,这确实是一个遍历数组的好方法:

myArray.forEach(function (value) {     console.log(value);});

但是 forEach 的本质还是一个方法,并不是语句

所以它并不能响应 break、continue 和 return 语句

 

四、 for-of

仔细分析一下上面三种方法,如果仅限于遍历数组的话,似乎最初的 for 语句反而最合适

直到 ES6 横空出世,新的循环语句 for-of 开始崭露头角

for ( let key of myArray ) {     console.log(key);}

 

没错,for-of 就是最直接最清爽的遍历数组的办法

如果用一句话概括 for-in 与 for-of 的区别的话,那就是:

for-in 循环用来遍历对象属性,for-of 循环用来遍历数据

 

五、 for-of 不仅如此

作为一个 ES6 新增的语句,for-of 和其他 ES6 语法的结合,才是它的强大之处

 

遍历 Set 类型:

const mySet = new Set('wwiissee');for ( let value of mySet ) {    console.log(value);}

遍历 Map 类型:

const myMap = new Map([  ['name', 'wise'],  ['info', 'wrong'],  ['home', 'cnblogs']]);for ( let [key, value] of myMap ) {    console.log(key + ' is ' + value);}

转载于:https://www.cnblogs.com/zhou195/p/6435125.html

你可能感兴趣的文章
win7读取linux硬盘序列号,Windows 下获取硬盘序列号
查看>>
linux音频设备接口,OSS--跨平台的音频接口简介
查看>>
华为网卡linux驱动安装,Linux Nvidia显卡驱动安装
查看>>
linux sql撤销,取消请求的sql语句
查看>>
c语言学习 二维指针,二维数组和指针(C语言)
查看>>
图像压缩算法构造最优解c语言,C语言与程序设计第12章递归.ppt
查看>>
c语言飞机源代码,C语言写的飞机源码
查看>>
C语言 如果某个数大于10 归零,C:当指针实际指向某个东西时,函数继续接收归零指针(示例代码)...
查看>>
c c 语言项目实战 pdf,[计算机]C实战项目.pdf
查看>>
linux中solr创建core,Solr6.6 创建core
查看>>
android的边框阴影,android 自定义shape 带阴影边框效果
查看>>
android centos 的编码,Centos 安装 android sdk
查看>>
反编译android 状态栏沉浸,手把手教你傻瓜式开启状态栏沉浸模式
查看>>
android l job scheduler api,Android JobScheduler API
查看>>
html css 扑克牌桌面,纯CSS实现画扑克牌
查看>>
html5资源分享,12款实用的HTML5干货分享
查看>>
n9 android模拟器,Android软件将兼容诺基亚N9
查看>>
html防替换资源,html前端进行资源重载及刷新资源
查看>>
html5css做星星的形状,css评分效果的星星示例技术分享
查看>>
html实现放大镜效果,利用jquery实现放大镜特效
查看>>