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()用法的实例讲解内容,希望能为大家提供参考。