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

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书籍资料

你可能感兴趣的:(JavaScript)