• for..of与for..in


    var arr=[1,2,3,5]
    undefined
    for(var m of arr)
        console.log(m)//1,2,3,5
    
    for(var m in arr)
        console.log(m)//0,1,2,3

    for...in由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组也是一个对象,数组中的每个元素的索引被视为属性名称,所以我们可以看到使用for...in循环Array数组时,拿到的其实是每个元素的索引。

    arr.name='abc'
    "abc"
    for(var m in arr)
        console.log(m)//0,1,2,3,name

    如上所示,当我们为a多手动添加一个属性name的时候,for...in循环会把name属性也包括在内,而Array的length属性却不包括在内。

    for...of循环则不存在上述的问题,它只循环集合本身的元素。这就是为什么引入for...of循环。
  • 相关阅读:
    2019.8.8 python day03
    2019.8.7 python进阶day02
    2019.8.6(python day01)
    2019.8.5
    2019.8.2
    2019.8.1
    2019.7.31
    2019.7.30
    面向对象进阶
    访问可见性问题和@property装饰器
  • 原文地址:https://www.cnblogs.com/yiyi17/p/8462570.html
Copyright © 2020-2023  润新知