JS里for in和for of的对比
时间: 2023-07-12 18:43:59 浏览: 90
python,Java,JavaScript实现indexOf
`for-in` 和 `for-of` 都是用来遍历数据结构的循环语句,但是它们的用途和行为是不同的。
1. `for-in` 循环:
`for-in` 循环适用于遍历对象的属性。它枚举对象的属性名称,而不是属性值。示例如下:
```javascript
const obj = { a: 1, b: 2, c: 3 };
for (const prop in obj) {
console.log(prop); // a b c
}
```
注意,`for-in` 循环枚举的是对象的可枚举属性(包括自有属性和继承属性)。
2. `for-of` 循环:
`for-of` 循环适用于遍历可迭代对象的元素。它枚举对象的属性值,而不是属性名称。示例如下:
```javascript
const arr = [1, 2, 3];
for (const val of arr) {
console.log(val); // 1 2 3
}
```
`for-of` 循环遍历的是可迭代对象的元素,包括数组、字符串、Set、Map 等。在遍历数组时,`for-of` 循环会遍历数组的元素,而忽略数组的索引属性和其他非迭代属性。
总之,`for-in` 循环适用于遍历对象的属性,而 `for-of` 循环适用于遍历可迭代对象的元素。
阅读全文