剩餘引數Rest與 Spread 語法

2021-10-12 12:45:31 字數 1244 閱讀 7309

可以通過使用三個點**…**並在後方跟著包含剩餘引數的陣列名稱,將其包含在函式定義中,也就是將剩餘的引數收集到乙個陣列中

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 ...