ES6为Array增加了of函数用已一种明确的含义将一个或多个值转换成数组。
因为,用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"}]
ES6增加的Array.of()方法,只有一个含义,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"}]
这就是用of生成数组的好处,含义一致。
End