js for of 和 for in 的区别
时间: 2024-06-15 18:09:10 浏览: 199
当遍历数组或者对象时,JavaScript提供了两种不同的循环方式:for...of和for...in。它们的区别如下:
1. for...of循环:
- 用于遍历可迭代对象(如数组、字符串、Set、Map等)中的元素。
- 循环变量直接获取每个元素的值,而不是索引或键。
- 不支持遍历普通对象(非可迭代对象)。
2. for...in循环:
- 用于遍历对象的可枚举属性(包括自身属性和继承属性)。
- 循环变量获取的是每个属性的键名(字符串类型)。
- 可以遍历普通对象的属性,也可以遍历数组或类数组对象的索引。
示例代码如下:
```javascript
// for...of循环示例
const arr = [1, 2, 3];
for (const item of arr) {
console.log(item);
}
// for...in循环示例
const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
console.log(key);
}
```
相关问题
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 for in和for of的区别
`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 遍历的是数组的值,不会输出附加属性.
阅读全文