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 。

只遍历【可迭代对象】定义要迭代的数据。