ES6 引入了一系列方便的“语法糖”。其中包括 JavaScript 函数的默认参数能力,以及其余参数。我发现每当尝试在休息参数上设置默认参数值时,我的控制台(或 devTools)都会抱怨(即抛出错误)。我发现在其他地方很少提到这个特定问题,我想知道1.)是否可以这样做,以及2.)为什么不这样做(假设不可能)。
例如,我设计了一个微不足道的(但希望仍然是有目的的)示例。在函数的第一次迭代中,我构造了函数,使其可以工作(也就是说,没有给 rest 参数一个默认值)。
const describePerson = (name, ...traits) => `Hi, ${name}! You are ${traits.join(', ')}`;
describePerson('John Doe', 'the prototypical placeholder person');
// => "Hi, John Doe! You are the prototypical placeholder person"
但是,现在使用默认值:
const describePerson = (name, ...traits = ['a nondescript individual']) => `Hi, ${name}! You are ${traits.join(', ')}`;
describePerson('John Doe');
// => Uncaught SyntaxError: Unexpected token =
任何帮助是极大的赞赏。