簡體   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