简单的区别是:
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){}

飞机
124 声望3 粉丝