在JavaScript中, ES6開始有rest參數 和 三個點擴展運算符 (spread運算符)
我們來看看他們各自的用處
1. rest參數
rest參數的形式為 ...變量名 用於獲取函數調用時傳入的參數. 顧名思義, rest參數表示的是除了明確指定的參數外,剩下的參數的集合, 它的類型是Array
舉個例子如下
function restFunc(...args) { return args.length; } restFunc('This','is','rest','test'); // 輸出4 參數的個數為4
我們再來看一個例子
function restFunc(firstArgs,...restArgs) { console.log(Array.isArray(restArgs)); console.log(firstArgs,restArgs); } restFunc(5,6,7,8,9); 輸出結果 true 5,[6,7,8,9]
2. spread運算符 ...
擴展運算符 ...可以用於 數組的構造,也可以用於調用函數時,將一個數組用作函數參數(就是把這個數組轉化為參數的列表,所以也就成了一個函數的參數)
我們來看幾個例子,更直觀的來表示它
例子1 構造數組
var arr1 = [1,3,5]; var arr2 = [2,4,6]; [...arr1,...arr2] // 輸出 [1,3,5,2,4,6]
例子2 將一個數組用作函數參數 我們還是來看一個例子
function testFunc(x,y,z) { return x + y + z; } var args = [1,2,3]; testFunc(...args); //輸出 6