js for in和for of的区别
时间: 2023-04-30 09:03:24 浏览: 68
`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中for in 和for of的区别
在JavaScript中,`for...in`和`for...of`是两种不同的循环结构,用于遍历集合或数组中的元素。它们在使用方式和遍历对象上有一些不同之处。
1. `for...in`循环:
- 用于遍历对象的属性,而不是数组或集合的元素。
- 循环变量表示的是对象的属性名称或键。
- 循环过程中会遍历所有可枚举的属性,包括继承自原型链的属性。
- 循环顺序是不确定的,可能不按照属性的顺序进行遍历。
示例:
```javascript
let obj = { a: 1, b: 2, c: 3 };
for (let prop in obj) {
console.log(prop); // 输出:a, b, c
}
```
2. `for...of`循环:
- 用于遍历可迭代对象(如数组、字符串、Set、Map等)的元素。
- 循环变量表示的是集合中的每个元素本身。
- 循环过程中只会遍历集合自身的元素,不会包括原型链上的属性或方法。
- 循环顺序是有序的,按照集合元素的顺序进行遍历。
示例:
```javascript
let arr = [1, 2, 3];
for (let element of arr) {
console.log(element); // 输出:1, 2, 3
}
```
总结:
- `for...in`适用于遍历对象的属性。
- `for...of`适用于遍历可迭代对象的元素。
- `for...in`遍历属性,`for...of`遍历元素。