forEach
一般用来遍历数组.
缺点:无法停止循环,无法break.
for in
一般用来遍历对象,也可以遍历数组.
缺点:会把原型属性过滤出来,需要hasOwnProperty()过滤.
for of
一般用来遍历数组,类数组。遍历对象需要配合Object.keys()使用.
一个数据结构只要部署了Symbol.iterator属性,就被视为具有 iterator 接口,就可以用for…of循环遍历它的成员。也就是说,for…of循环内部调用的是数据结构的Symbol.iterator方法。
for…of循环可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象(比如arguments对象、DOM NodeList 对象)、后文的 Generator 对象,以及字符串。
