for in 与 for of
for...in** 迭代对象的属性:**
for...in循环用于迭代对象的可枚举属性,包括继承的可枚举属性。在迭代过程中,它会遍历对象的所有可枚举属性名称,而不仅限于数组或类似数组的对象的索引。
注意:**
for...in** 不建议用于迭代数组,因为它会枚举数组的所有可枚举属性,包括原型链上的属性,而且迭代顺序不一定是按照数组的顺序。
javascriptCopy code
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、字符串等)的元素值。在迭代过程中,它会遍历对象的值,而不是键或索引。
对于普通的对象,它并不适用,因为普通对象不是可迭代的。
javascriptCopy code
const arr = [1, 2, 3];
for (let value of arr) {
console.log(value); // 输出:1, 2, 3
}
总的来说,**for...in** 用于迭代对象的属性,而 for...of 用于迭代可迭代对象的值。
for in 与 for of
https://blog.fullsize.cn/2024/02/28/notion/for-in-yu-for-of/