可以通過使用三個點**…**並在後方跟著包含剩餘引數的陣列名稱,將其包含在函式定義中,也就是將剩餘的引數收集到乙個陣列中
const sumall = (...args) =>
console.log(sumall(2, 3, 4)) //9
也可以將第乙個引數作為變數,將其餘的收集起來
const str = (firstname, ...args) =>
console.log(str('***', 'ww', 3, 4)); //***ww
⚠:rest引數必須放到引數列表的末尾
類陣列物件,該物件按照引數所有包含所有引數
function showname()
// 依次顯示:2,julius,caesar
showname("julius", "caesar");
// 依次顯示:1,ilya,undefined(沒有第二個引數)
showname("ilya");
⚠箭頭函式是沒有 "arguments"
剩餘引數和arguments物件的區別:
書引數只包含了哪些沒有對應形參的實參,而arguments物件包含了傳給函式的所有實參
剩餘引數是乙個真正的陣列,arguments物件並不是
類似與擴充套件符
let arr1 = [1, -2, 3, 4];
let arr2 = [8, 3, -8, 1];
console.log( math.max(...arr1, ...arr2) ); // 8
在上面的示例中,我們使用陣列展示了 spread 語法,其實任何可迭代物件都可以。
例如,在這兒我們使用 spread 語法將字串轉換為字元數
let str = "hello";
console.log( [...str] ); // h,e,l,l,o
當我們在**中看到 「…」 時,它要麼是 rest 引數,要麼就是 spread 語法。有乙個簡單的方法可以區分它們:
剩餘引數(rest)
1 概念 形式為.變數名,用於獲取函式除開始引數外的引數,可以使用剩餘引數代替arguments物件,但他是乙個真正的陣列。2 替換arguments arguments寫法 function sortnumber rest引數寫法 const sortnumber numbers numbers....
理解spread運算子與rest引數
理解spread運算子與rest引數 spread運算子與rest引數 是es6的新語法。它們的作用是什麼?能做什麼事情?1.rest運算子用於獲取函式呼叫時傳入的引數。function testfunc args 呼叫函式 testfunc aa bb cc 2.spread運算子用於陣列的構造,...
rest 引數與擴充套件運算子
rest 引數與擴充套件運算子 1.rest 引數 es6 引入 rest 引數 形式為.變數名 用於獲取函式的多餘引數,這樣就不需要使用arguments物件了。rest 引數搭配的變數是乙個陣列,該變數將多餘的引數放入陣列中。function add values return sum add ...