乐趣区

forof-forin-的区别

简单的区别是:
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 接口

退出移动版