for-in、for-of 区别
cooljser 2022-01-02 javascript
const array = [1,2,3,4,5];
const obj = {name: 'jack', age: 18};
console.log('for in array');
for (let i in array) {
console.log(i); // 0,1,2,3,4
}
console.log('for in object');
for (let i in obj) {
console.log(i); // name, age
}
console.log('for of array');
for (let i of array) {
console.log(i); // 1,2,3,4,5
}
console.log('for of object');
for (let i of obj) {
console.log(i); // 报错
}
for (let [key, value] of Object.entries(obj)) {
console.log(key, value); // 替代方案
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
综上,for-in, for-of 都可用于遍历数组,for-in 中的每项为下标, for-of 中的每项为值。 for-in 也可以用于遍历对象,每项为 key。 for-of 不可直接遍历对象,因为对象没有实现 Iterator 接口。