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