For-in和For-of之间的差异:你需要知道的所有内容

3 min read

for-in 用于遍历对象中的属性,包括其原型链中的属性;for-of 用于遍历可迭代对象(例如数组、字符串、Map、Set等),并且它遍历的是可迭代对象中的值而不是属性。

具体来说,for-in 遍历对象中所有可枚举的属性(包括原型链中的属性),并将属性名依次赋值给变量。而 for-of 遍历可迭代对象中的元素,例如遍历数组中的每一个元素。

举个例子,使用 for-in 可以遍历对象中的属性,如下所示:

const obj = { a: 1, b: 2, c: 3 };

for (let prop in obj) {
  console.log(`${prop}: ${obj[prop]}`);
}
// Output:
// a: 1
// b: 2
// c: 3

而使用 for-of 可以遍历一个数组的元素,如下所示:

const arr = [1, 2, 3];

for (let elem of arr) {
  console.log(elem);
}
// Output:
// 1
// 2
// 3

总的来说,for-in 用于遍历对象中的属性,for-of 用于遍历可迭代对象中的元素。