for of
- 具有iterator接口,就可以用for of循环遍历它的成员(属性值)。
- for of 可以使用的范围包括:数组、Set和Map结构、某些类似数组的对象、Generator对象、字符串
- for of循环调用遍历器接口,数组的遍历器接口只返回具有数字索引的属性,对于普通的对象不能使用for of直接遍历,需要部署iterator接口才能使用
- 可以中断循环
for in
- 遍历对象自身的和继承的可枚举的属性
- 不能直接获取属性值
- 可以中断循环
Object.hasOwnPrototype 可以判断对象是否具有该属性
forEach
- 只能遍历数组
- 不能中断循环
- 没有返回值(返回undefined)
map
- 只能遍历数组
- 返回一个新的数组
- 不能中断循环