Js中for in 和for of的区别

106 阅读1分钟

for infor of 的异同点

比较for infor 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)
}

forinforof.png