JS中的rest參數是什么?如何使用?

rest參數是JavaScript中用于收集函數多余參數為數組的語法特性。它使用三個點…加變量名的形式,如function example(…args),將傳入的多個參數自動收集為數組,便于操作。應用場景包括:1. 處理不確定數量的參數,如實現靈活的加法函數;2. 與解構結合使用,提取數組剩余元素;3. 函數代理時轉發參數,避免手動傳遞。注意事項有:必須是函數最后一個參數、不能和arguments混用、在箭頭函數中需依賴rest參數。掌握后可提升處理多參數場景的效率和代碼清晰度。

JS中的rest參數是什么?如何使用?

在JavaScript中,rest參數是一種語法特性,用來表示函數中不確定數量的參數。它允許我們將一個不定數量的參數表示為一個數組,簡化了對多個參數的操作。


什么是rest參數?

簡單來說,rest參數就是用三個點 … 加上一個變量名的形式,把多余的參數“收集”起來,變成一個數組。例如:

function example(...args) {   console.log(args); } example(1, 2, 3); // 輸出 [1, 2, 3]

在這個例子中,…args 就是rest參數。無論你傳多少個參數進去,都會被自動放進一個數組里。

注意:一個函數中只能有一個rest參數,并且它必須是最后一個參數。


rest參數的實際應用場景

1. 處理不確定數量的參數

當你寫一個函數,不知道用戶會傳幾個參數時,使用rest參數比 arguments 對象更直觀、方便。

比如,寫一個加法函數:

function sum(...numbers) {   return numbers.reduce((total, num) => total + num, 0); } sum(1, 2, 3); // 6 sum(5, 10);   // 15

相比以前用 arguments,現在代碼更清晰也更容易操作。

2. 和解構結合使用

rest參數也常用于數組或對象的解構賦值中,比如:

const [first, ...rest] = [1, 2, 3, 4]; console.log(rest); // [2, 3, 4]

這里,first 是第一個元素,剩下的都放到 rest 數組中。

3. 函數代理(轉發參數)

有時候你想定義一個函數,把所有參數原樣傳給另一個函數,這時候可以用rest參數配合展開運算符(spread)一起使用:

function log(...args) {   console.log('收到參數:', args);   anotherFunction(...args); }

這樣可以避免手動一個個傳遞參數,非常靈活。


常見錯誤和注意事項

  • rest參數必須是最后一個參數
    下面這種寫法是錯的:

    function wrong(a, ...rest, b) {} // ? 報錯
  • 不能和 arguments 混用
    在箭頭函數中沒有 arguments,所以必須用rest參數代替。

  • 不是真正的數組,但像數組一樣操作
    rest參數本身是一個真正的數組,可以直接使用 .map、.Filter 等方法。


基本上就這些。掌握rest參數之后,你會發現它在處理多參數場景時非常實用,尤其是在封裝工具函數或者需要靈活接口的地方。

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享