语法错误:无效的销毁分配目标或参考错误:无效的分配左侧?

时间:2019-03-02 20:49:03

标签: javascript ecmascript-6

我有以下代码示例:

var a = 10;
({a}) = 0;

在Google Chrome浏览器中,它显示错误:SyntaxError: Invalid destructuring assignment target

在Firefox中,它显示错误:ReferenceError: invalid assignment left-hand side

实际上,我想了解这是哪种错误?

1 个答案:

答案 0 :(得分:2)

好吧,这只是无效的语法。您are not allowed在括号中放置一个破坏模式 [1]

  

如果 LeftHandSideExpression 既不是 ObjectLiteral 也不是 ArrayLiteral ,则这是早期参考错误 [2] LeftHandSideExpression 的IsValidSimpleAssignmentTarget为false

作为 LeftHandSideExpression ({a}) ParenthesizedExpression ,而不是 ObjectLiteral ,并且括号中不包含一个简单的分配目标。

您可能正在寻找a parenthesised statement to allow the destructuring pattern

var a = 10;
({a} = 0);

1:令人惊讶的是(a) = 0; is a valid statement
2:Chrome似乎是错误的,先抛出SyntaxError,然后