WebStorm中的以下有效ES6:
let {a,b} = {a:0,b:0};
{a,b} = {a:2,b:4};
在第二个等号处显示错误:“预期表达式”。显然,JavaScript设置已设置为ES6。
通过添加括号可以消除错误:
let {a,b} = {a:0,b:0};
({a,b} = {a:2,b:4});
这是Bug还是ES6的一部分?节点编译器似乎对第一个版本没有问题(不带括号),因此它似乎并不是标准的一部分。
最佳答案
这不是错误,这是ExpressionStatement
的方式:
注意
ExpressionStatement不能以U + 007B(左卷曲的括号)开头,因为这可能会使它与Block产生歧义。 ExpressionStatement不能以function或class关键字开头,因为这会使它与FunctionDeclaration,GeneratorDeclaration或ClassDeclaration产生歧义。 ExpressionStatement不能以异步函数开头,因为这会使它与AsyncFunctionDeclaration产生歧义。 ExpressionStatement不能以两个标记序列let [开头,因为这会使它与let LexicalDeclaration产生歧义,后者的第一个LexicalBinding是ArrayBindingPattern。