JavaScript 中 for in 和 for of 的区别

for infor 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)
}
复制代码

forinforof.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享