各种 for 循环的区别
for
最传统的 for 循环,是 while 循环的进化。
forEach
Array 专有的,类数组如果想用的话可以用 call 的方式。
Array.prototype.forEach.call()
for…in
ES5 的特性。
用于 Object 和 Array。
用来遍历 key 。
会遍历所有可枚举属性,包括原型上的属性。
除了遍历数组元素以外,还会遍历自定义属性,这是 for…in 的缺陷,而 for…of 不会这样做。
for…of
ES6 的特性。
用于【可迭代对象】(包括 Array,map 等等,但不包括 Object)。
用来遍历 value 。
只遍历【可迭代对象】定义要迭代的数据。