for in 与 for of


for...in 迭代对象的属性:

  • for...in 循环用于迭代对象的可枚举属性,包括继承的可枚举属性。
  • 在迭代过程中,它会遍历对象的所有可枚举属性名称,而不仅限于数组或类似数组的对象的索引。
  • 注意:**for...in** 不建议用于迭代数组,因为它会枚举数组的所有可枚举属性,包括原型链上的属性,而且迭代顺序不一定是按照数组的顺序。
const obj = { a: 1, b: 2, c: 3 };

for (let prop in obj) {
  console.log(prop); // 输出:a, b, c
}

for...of 迭代可迭代对象的值:

  • for...of 循环用于迭代可迭代对象(如数组、Map、Set、字符串等)的元素值。
  • 在迭代过程中,它会遍历对象的值,而不是键或索引。
  • 对于普通的对象,它并不适用,因为普通对象不是可迭代的。
const arr = [1, 2, 3];

for (let value of arr) {
  console.log(value); // 输出:1, 2, 3
}

总的来说,**for...in** 用于迭代对象的属性,而 for...of 用于迭代可迭代对象的值。


文章作者: fullsize
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fullsize !
  目录