1. 程式人生 > >es6新增的Array.of()方法

es6新增的Array.of()方法

Array.of()方法

Array.of() 方法用於將一組值,轉換為陣列。

Array.of(3, 11, 8) // [3,11,8]
Array.of(3) // [3]
Array.of(3).length // 1

Array.of總是返回引數值組成的陣列。如果沒有引數,就返回一個空陣列。

這個方法的主要目的,是彌補陣列建構函式Array()的不足。因為引數個數的不同,會導致Array()的行為有差異

Array() // []
Array(3) // [, , ,]
Array(3, 11, 8) // [3, 11, 8]

 如果引數是空值沒區別,

如果是一位引數數值1,Array.of()返回當前值的陣列 [1] ,Array()返回1個空值

如果是一位引數數值3,Array.of()返回當前值的陣列 [3] length是1 ,Array()返回3個空值 length 是 3 

如果傳入的是1,2,3,Array.of()和Array()都返回當前值的陣列 [1, 2, 3].

如果傳入的是undefined和null那麼都返回 [ undefined ] 和 [ null ]  ;

如果傳入的是NaN Array.of() 返回的是 [ NaN ] , Array()則會報錯

Array.of()    //[]
Array()    //[]

Array.of(1)    //[1]
Array(1)        //[empty] == 空值

Array.of(3)    // [3]
Array(3)        /(3) [empty × 3]

Array.of(3).length    // 1
Array(3).length        //3

Array.of(1,2,3)        // (3) [1, 2, 3]
Array(1,2,3)        // (3) [1, 2, 3]

Array.of(NaN)        //[NaN]
Array(NaN)        // 報錯

Array.of基本上可以用來替代Array()或new Array(),並且不存在由於引數不同而導致的過載。它的行為非常統一。

Array.of() // []
Array.of(undefined) // [undefined]
Array.of(1) // [1]
Array.of(1, 2) // [1, 2]

 

語法:

Array.of(element0[, element1[, ...[, elementN]]])

引數:

elementN  一> 任意個引數,將按順序成為返回陣列中的元素。 

返回值:

新的陣列例項

相容性:

   此方法不相容IE,如果需要相容性用以下程式碼模擬

function ArrayOf(){
return [].slice.call(arguments);
}