繁体   English   中英

WebStorm JavaScript 解构赋值

[英]WebStorm JavaScript destructuring assignment

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});

这是错误还是 ES6 的一部分? 节点编译器似乎对第一个版本没有问题(没有括号),因此它似乎不是标准的一部分。

这不是错误,这是ExpressionStatement方式:

注意ExpressionStatement不能以U + 007B(左卷曲的括号)开头,因为这可能会使它与Block产生歧义。 ExpressionStatement不能以function或class关键字开头,因为这会使它与FunctionDeclaration,GeneratorDeclaration或ClassDeclaration产生歧义。 ExpressionStatement不能以异步函数开头,因为这会使它与AsyncFunctionDeclaration产生歧义。 ExpressionStatement不能以两个令牌序列let [开头,因为这会使它与let LexicalDeclaration产生歧义,后者的第一个LexicalBinding是ArrayBindingPattern。

在你的作业周围加上括号。 例如,以下是正确的

let foo
({foo = 3} = {foo: 2})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM