for in
和 for of
的异同点
①从遍历数组角度来说,for···in遍历出来的是key(即下标),for···of遍历出来的是value(即数组的值);
②从遍历字符串的角度来说,同数组一样
③从遍历对象的角度来说,for···in会遍历出来的为对象的key,但for···of会直接报错。需要配合Object.keys()一起使用
④如果要使用for…of遍历普通对象,需要配合Object.keys()一起使用。
示例
const obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5
}
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8]
for (let i in obj) {
console.log('for in break before', i, obj[i])
if (obj[i] > 3) {
break
}
console.log('for in break after', i, obj[i])
}
console.log('------')
for (let i of arr1) {
console.log('for of break before', i)
if (i > 3) {
break
}
console.log('for of break after', i)
}