SyntaxError: rest parameter may not have a default
當剩餘引數具有預設值時,會發生 JavaScript 異常“rest parameter may not have a default”(剩餘引數不能有預設值)。因為剩餘引數總是建立一個數組,所以預設值永遠不會應用。
訊息
SyntaxError: Rest parameter may not have a default initializer (V8-based) SyntaxError: rest parameter may not have a default (Firefox) SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration. (Safari)
錯誤型別
SyntaxError
哪裡出錯了?
預設引數在沒有傳遞引數或引數作為 undefined 傳遞時,會給引數一個預設值。剩餘引數收集傳遞給函式的所有剩餘引數並始終建立一個數組。因此,給剩餘引數設定預設值是沒有意義的。
示例
無效案例
js
function doSomething(...args = []) {}
有效情況
js
function doSomething(...args) {
// args is always an array
}