简单的区别是:
for...of得到是value, for...in得到的是key.
下面详细说区别。
for...of是在es6时出现的。与其对应的是Iterator接口。Iterator接口对应的是可以返回遍历器对象的方法。这个方法使用[Symbol.iterator]
标记。因为遍历器对象返回的是当前值。所以for...of得到的value.
for...in是在当前对象的除Symbol属性以外的可枚举属性组成的列表中遍历。所以for...in得到的是对象的属性。
用途
for...of一般用于Array/String/Set/Map... 因为他们有Iterator接口
for...in一般用于Object/类数组 因为Object没有Iterator接口
for (let key in obj){}
for (let element of arr){}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。