在JavaScript中,for...in和for...of都是循环结构,但它们用于不同的目的,并操作于不同类型的对象。
for...in
for...of
目的: 用于迭代对象的属性,包括其原型链上的属性。
示例:
const obj = { a: 1, b: 2, c: 3 }; for (const key in obj) { console.log(key, obj[key]); }
迭代: 对象的键(包括继承的键)。
额外说明:
目的: 用于迭代可迭代对象,如数组、字符串、映射、集合等。
const array = [1, 2, 3]; for (const value of array) { console.log(value); }
迭代: 可迭代对象的值。
[Symbol.iterator]
总体而言,for...in用于迭代对象属性,而for...of用于迭代可迭代对象。在处理数组、字符串、映射、集合等时,通常首选for...of。在处理对象时,特别是具有原型的对象时,可能更适合使用for...in。
原文链接:codingdict.net