Zonebit

个人的奋斗还是历史的进程?

View the Project on GitHub

12 September 2018

es5和es6中的for循环

by ganlyun

以数组为例,在ES5中,遍历一个数组有三种方式:

  1. 原始for
  2. forEach方法
  3. for…in

三种方式的缺点也很明显:

  1. 书写繁琐
  2. 不能使用 break, continue, return 终止循环
  3. 会以字符串键名遍历,而且有时无法确定遍历顺序,有时会遍历非索引值的键,因为是一个针对对象的遍历方法

在ES6中,提供了统一的 for…of 遍历方法,去除了上述所有缺点,而且可以遍历任意数据结构( 除了Object不能直接遍历,因为没有默认部署 Iterator 接口)

同时ES6针对数组、对象(没错这样可以)、Set 和 Map 均提供了了 keys, values, entries 方法,三种方法分别返回键名、键值以及键值对遍历器(Iterator)对象,让我们可以通过 for..of 更加方便灵活地遍历这些数据结构

所以,毫不犹豫的,使用 for…of 做循环吧

参考

tags: ES5 - ES6 - for