forEach
- 只能用作遍历数组,不能遍历对象
- 因为他是一个回调,所以不能使用break,return或continue来中断运行,一旦遍历就会遍历整个数组
for...of...
- 只能用作遍历数组,不能遍历对象
- 是循环,所以可以使用break,return或者continue来中断
for...in...
- 用作遍历对象
- 也可以遍历数组,但是不推荐遍历数组,因为迭代的时候不一定是按照原顺序进行的,这无疑会影响数组的下标
- 不仅会遍历对象自身的属性,还会遍历对象原型上的属性,这也是它和Object.keys的区别