js for in和for of的区别
时间: 2023-04-30 21:03:24 浏览: 106
`for in` 和 `for of` 都是 JavaScript 中的循环语句,但它们用于遍历不同类型的数据结构。
`for in` 适用于遍历对象的属性,它遍历的是对象的键名(或索引)。
`for of` 适用于遍历可迭代对象(如数组、字符串、Set 等)的值,它遍历的是对象的值。
举个例子:
```
let arr = [3, 5, 7];
arr.foo = "hello";
for (let i in arr) {
console.log(i); // "0", "1", "2", "foo"
}
for (let i of arr) {
console.log(i); // "3", "5", "7"
}
```
因此,在使用for in 遍历数组时还会输出其附加的属性,而for of 遍历的是数组的值,不会输出附加属性.
相关问题
js for in和for of区别
`for in` 和 `for of` 是 JavaScript 中两种不同的循环语句,它们之间有以下几个区别:
1. `for in` 循环遍历的是对象的属性名,而 `for of` 循环遍历的是对象的属性值。
2. `for in` 循环遍历的是对象的可枚举属性,包括从原型链继承来的属性,而 `for of` 循环遍历的是对象的可迭代对象,例如数组、字符串、Map、Set 等。
3. `for in` 循环的顺序不确定,因为对象的属性顺序不确定,而 `for of` 循环的顺序是确定的,因为可迭代对象是有序的。
4. `for in` 循环可以用于遍历对象,而 `for of` 循环只能用于遍历可迭代对象。
综上所述,`for in` 和 `for of` 在不同的场景下使用,具有不同的功能。
js中forin和forof区别
for...in循环可以遍历对象的属性名称,包括原型链上的属性,而for...of循环只能遍历可迭代对象(例如数组、字符串、Map、Set等)的值。
示例:
```
const obj = {a: 1, b: 2};
// for...in循环遍历对象的属性名
for (const key in obj) {
console.log(key); // 输出 a 和 b
}
// for...of循环遍历数组的值
const arr = [1, 2];
for (const value of arr) {
console.log(value); // 输出 1 和 2
}
```
注意:for...of循环不可以遍历普通对象,因为普通对象不是可迭代对象。
阅读全文