for in 和 for of 的异同点
| 比较 | for in | for of |
|---|
| 不同点 | 可以遍历普通对象 遍历出数组的原型对象 可以遍历出数组自身属性 遍历出来的值是 key 不可以遍历 map/set 不可以迭代 generators IE 支持 | 不能遍历普通对象 不会遍历出原型对象 不会遍历自身属性 遍历出来的值是 value 可以遍历 map/set 可以迭代generators IE 不支持 |
| 相同点 | 可以遍历数组 可以 break 中断遍历 | 可以遍历数组 可以 break 中断遍历 |
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)
}
