ES6 Array.of() 方法详解:解决 new Array() 的二义性问题
作者:闭包旅人时间:2026-10-22 07:53:42浏览:185
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()用法的实例讲解内容,希望能为大家提供参考。
作者最新文章
怎么用 Promise 封装 JavaScript sleep 函数实现异步延时
2026-11-05 17:49:14
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
