ES6 Array.of() 方法详解:解决 new Array() 的二义性问题

作者:闭包旅人

时间:2026-10-22

浏览:184

ES6引入了Array.of()方法,旨在解决new Array()构造函数在单参数时易产生的二义性问题。Array.of()确保参数直接作为数组元素,无论数量多少,语义始终一致。本文通过实例对比展示了两种方式的差异及Array.of()的优势。

文章目录

ES6 Array.of() 方法概述

ES6标准中新增的Array.of()方法,提供了一种明确且统一的语义,用于将传入的一个或多个值转换为数组。

new Array() 的二义性问题

在使用new Array()构造函数创建数组时,往往会遇到二义性的问题。

当构造时仅传入一个参数,该参数会被解释为生成的数组长度。

而当构造时传入多个参数,每个参数则被视为数组中的一个具体元素。


const arr1 = new Array()
const arr2 = new Array(5)
const arr3 = new Array(1, 3, '白色', {p1: 'v1'})
console.log('%s', JSON.stringify(arr1))
console.log('%s', JSON.stringify(arr2))
console.log('%s', JSON.stringify(arr3))

具体表现如下:


[]
[null,null,null,null,null]
[1,3,"白色",{"p1":"v1"}]

Array.of() 的一致性优势

ES6新增的Array.of()方法仅有一种含义,即其所有参数均直接作为转换后数组的元素。


const arr4 = Array.of()
const arr5 = Array.of(5)
const arr6 = Array.of(1, 3, '白色', {p1: 'v1'})
console.log('%s', JSON.stringify(arr4))
console.log('%s', JSON.stringify(arr5))
console.log('%s', JSON.stringify(arr6))

具体表现如下:


[]
[5]
[1,3,"白色",{"p1":"v1"}]

这就是使用Array.of()生成数组的优势所在,其语义始终保持一致。

以上关于ES6 Array.of()用法的实例讲解内容,希望能为大家提供参考。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章