剩餘引數語法

2021-08-20 04:26:46 字數 2058 閱讀 2788

剩餘引數語法允許我們將乙個不定數量的引數表示為乙個陣列。

語法

function

(a, b,..

.theargs)

如果函式的最後乙個命名引數以...為字首,則它將成為乙個陣列,其中從0(包括)到theargs.length(排除)的元素由傳遞給函式的實際引數提供。

在上面的例子中,theargs將收集該函式的第三個引數(因為第乙個引數被對映到a,而第二個引數對映到b)和所有後續引數。

剩餘引數和arguments物件之間的區別主要有三個:

引入了剩餘引數來減少由引數引起的樣板**。

// before rest parameters, the following could be found:

function

f(a, b)

// to be equivalent of

function

f(a, b,..

.args)

剩餘引數可以被解構,這意味著他們的資料可以被解包到不同的變數中。請參閱解構賦值。

functionf(

...[a, b, c])f

(1)// nan (b and c are undefined)f(

1,2,

3)// 6f(

1,2,

3,4)

// 6 (the fourth parameter is not destructured)

因為theargs是個陣列,所以你可以使用length屬性得到剩餘引數的個數:

function

fun1(.

..theargs)

fun1()

;// 彈出 "0", 因為theargs沒有元素

fun1(5

);// 彈出 "1", 因為theargs只有乙個元素

fun1(5

,6,7

);// 彈出 "3", 因為theargs有三個元素

下例中,剩餘引數包含了從第二個到最後的所有實參,然後用第乙個實參依次乘以它們:

function

multiply

(multiplier,..

.theargs));

}var arr =

multiply(2

,1,2

,3);

console.

log(arr)

;// [2, 4, 6]

下例演示了你可以在剩餘引數上使用任意的陣列方法,而arguments物件不可以:

function

sortrestargs(.

..theargs)

alert

(sortrestargs(5

,3,7

,1))

;// 彈出 1,3,5,7

function

sortarguments()

alert

(sortarguments(5

,3,7

,1))

;// 丟擲typeerror異常:arguments.sort is not a function

為了在arguments物件上使用array方法,它必須首先被轉換為乙個真正的陣列。

function

sortarguments()

console.

log(

sortarguments(5

,3,7

,1))

;// shows 1, 3, 5, 7

spring task cron 引數語法格式要求

spring任務排程之spring task 應用例項 實現郵件 帶附件 定時傳送功能 cron表示式是乙個字串,字串以5或6個空格隔開,分為6或7個域,每乙個域代表乙個含義,cron有如下兩種語法格式 seconds minutes hours dayofmonth month dayofweek...

剩餘引數Rest與 Spread 語法

可以通過使用三個點 並在後方跟著包含剩餘引數的陣列名稱,將其包含在函式定義中,也就是將剩餘的引數收集到乙個陣列中 const sumall args console.log sumall 2,3,4 9也可以將第乙個引數作為變數,將其餘的收集起來 const str firstname,args c...

swift 函式語法 格式

import uikit swift中函式的格式如下 func 函式名 引數列表 返回值型別 func 是關鍵字,多個引數列表之間使用逗號隔開,也可以沒有引數 使用箭頭 指向返回值型別 如果函式沒有返回值,返回值為void,並且 可以省略 1沒有引數沒有返回值的方法 func about1 void...