这些代码中的 `{}` 和 `()` 之间有什么区别?

you*_*ipi 5 javascript expression destructuring statements ecmascript-6

Destructuring_assignment#Assignment_without_declaration

它说:

左侧的 {a, b} 被认为是一个块而不是一个对象字面量。

var a, b;
{a, b} = {a:1, b:2};//Syntax Error!
({a, b} = {a:1, b:2}); // it works
Run Code Online (Sandbox Code Playgroud)

第二句中的“()”是做什么的?

为什么其中的“{}”被认为是对象字面量?

小智 2

Javascript 中的语句不得以大括号开头: 解构的陷阱

或者,也可以使用以下表达式:

"",{a, b} = {a:1, b:2};
Run Code Online (Sandbox Code Playgroud)

唯一重要的是语句不能以大括号开头,因为代码块以大括号开头。