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
}