美文网首页
Array()-和-Array-of()-的区别

Array()-和-Array-of()-的区别

作者: dingFY | 来源:发表于2020-09-28 08:39 被阅读0次

    Array()

    在JavaScript中,数组构造函数是new Array() 或 Array()

    
    let arr = Array(1, 2, 3, 4)
    console.log(arr) // 1, 2, 3, 4
    console.log(arr.length) // 4
    

    咋一看,好像什么毛病,我们改一下代码,将构造函数的参数设为只有一个数字时:

    let arr = Array(4)
    console.log(arr) // [empty × 4]
    console.log(arr.length) // 4
    

    这时就会发现,我们或许只是想构造一个只有一个数字4的数组,但却构造了一个数组长度为4的数组,怎么解决这个问题呢?
    Array.of()来帮你解决这个问题吧!Array.of()和new Array()功能相同,但当只放入一个数字时,Array.of()会构造一个包含该数字的数组。

    Array.of()

    Array.of ()方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。

    let arr = Array.of(1, 2, 3, 4)
    console.log(arr) // [1, 2, 3, 4]
    console.log(arr.length) // 4
    
    

    这个方法的主要目的,是弥补数组构造函数 Array() 的不足。因为参数个数的不同,会导致 Array() 的行为有差异

    let arr = Array.of(4)
    console.log(arr) // [4]
    console.log(arr.length) // 1
    

    区别

    Array.of () 和 Array 构造函数之间的区别在于处理整数参数:Array.of (7)创建一个具有单个元素 7 的数组,而 Array(7)创建一个长度为7的空数组(注意:这是指一个有7个空位(empty)的数组,而不是由7个 undefined 组成的数组)Array.of ()基本上可以用来替代 Array() 或 new Array() ,并且不存在由于参数不同而导致的重载。它的行为非常统一。Array.of ()总是返回参数值组成的数组。如果没有参数,就返回一个空数组。

    Array.of() // []
    Array.of(undefined) // [undefined]
    Array.of(1) // [1]
    Array.of(1, 2) // [1, 2]
    
    

    文章每周持续更新,可以微信搜索「 前端大集锦 」第一时间阅读,回复【视频】【书籍】领取200G视频资料和30本PDF书籍资料

    相关文章

      网友评论

          本文标题:Array()-和-Array-of()-的区别

          本文链接:https://www.haomeiwen.com/subject/eifrnhtx.html