在es6中,以下似乎是有效的代码:
function test(a1,{a=1,b=2} = {},) {}
Run Code Online (Sandbox Code Playgroud)
注意,功能args中的额外功能.我不确定这是否是一个错误,因为这个额外,只被接受用于解构分配.
从ES2017开始,无论是否解构,参数列表上的尾随逗号都是有效的.(请参阅FormalParameters的规范,它特别FormalParameterList[?Yield, ?Await] ,列为有效选项之一.)例如,在任何最近(ish)版本的Chrome中,这适用于符合ES2017的JavaScript引擎,如V8:
function foo(a, b,) {
// ------------^
console.log(a, b);
}
foo(1, 2);Run Code Online (Sandbox Code Playgroud)
如果您在没有进行解构时看到该逗号上的错误,但是当您没有进行解构时,那就是您正在使用的JavaScript引擎尚未完全符合当前规范(尚未).
同样,ES2017 +中也允许参数列表中的尾随逗号:
function foo(a, b) {
console.log(a, b,);
// -------------^
}
foo(1, 2);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30 次 |
| 最近记录: |