for in循环只能循环可枚举属性
循环数组时
const arr = [1, 2, 3];
for (const key in arr) {
console.log(key, arr[key]);
}
输出结果:
第一列输出数组的下标,第二列输出数组中的值
循环对象时
const obj = {
name: '张三',
age: 20,
sex: '男'
}
for (const key in obj) {
console.log(key, obj[key]);
}
输出结果:
for of循环只能循环可迭代的对象
可迭代对象有:数组、字符串、Set和Map
所以for of循环不能循环对象
循环数组时:
const arr = [1, 2, 3];
for (const key of arr) {
console.log(key);
}
输出结果:
直接输出1,2,3
循环字符串时:
const str = 'abcdefg';
for (const key of str) {
console.log(key)
}
循环Set对象:
const set = new Set([1, 2, 3]);
for (const key of set) {
console.log(key);
}
输出结果:
循环Map对象:
const map = new Map();
map.set('name', '张三');
map.set('age', 20);
map.set('sex', '男');
for (const key of map) {
console.log(key);
}
输出结果: