ES6-rest

(1) Rest 參數接受函數的多餘參數,組成一個數組,放在形參的最後,形式如下:

function func(a, b, ...theArgs){    // ...}

(2) Rest參數和arguments對象的區別:

rest參數只包括那些沒有給出名稱的參數,arguments包含所有參數
arguments 對象不是真正的數組,而rest 參數是數組實例,可以直接應用sort, map, forEach, pop等方法
arguments 對象擁有一些自己額外的功能

(3) 從 arguments 轉向數組

Rest 參數簡化了使用 arguments 獲取多餘參數的方法

// arguments 方法function func(a, b){    var args = Array.prototype.slice.call(arguments);    console.log(args)
}
func(1,2)// Rest 方法function func(a, b, ...args){    // ...}
//注意,rest 參數之後不能再有其他參數(即,只能是最後一個參數),否則會報錯,比如下面的這段代碼就是錯的
function func(a, ...b, c) {    // ...}// Rest parameter must be last formal parameter
//函數的 length 屬性,不包括rest參數
(function(a) {}).length     // 1(function(...a) {}).length      // 0(function(a, b, ...c)).length   // 

(4) Rest參數可以被結構(通俗一點,將rest參數的數據解析後一一對應)不要忘記參數用[]括起來,因爲它是數組

function f(...[a, b, c]) {  
  return a + b + c;  
}  
  
f(1)        
 //NaN 因爲只傳遞一個值,其實需要三個值  f(1, 2, 3)    // 6  f(1, 2, 3, 4) // 6 (第四值沒有與之對應的變量名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章