Javascript SyntaxError:无效的解构分配目标或引用错误:左侧的分配无效?
我有一个代码示例:Javascript SyntaxError:无效的解构分配目标或引用错误:左侧的分配无效?,javascript,ecmascript-6,Javascript,Ecmascript 6,我有一个代码示例: var a = 10; ({a}) = 0; 在Google Chrome中,它显示了一个错误:SyntaxError:Invalid destructuring assignment target 在Firefox中,它显示了一个错误:ReferenceError:invalid assignment left-side 实际上,我想了解它是什么类型的错误?嗯,它只是无效的语法。您需要在括号[1]中放入一个分解模式: 如果LeftHandSideExpression既不是
var a = 10;
({a}) = 0;
在Google Chrome中,它显示了一个错误:SyntaxError:Invalid destructuring assignment target
在Firefox中,它显示了一个错误:ReferenceError:invalid assignment left-side
实际上,我想了解它是什么类型的错误?嗯,它只是无效的语法。您需要在括号[1]中放入一个分解模式: 如果LeftHandSideExpression既不是ObjectLiteral,也不是ArrayLiteral,并且LeftHandSideExpression的IsValidSimpleAssignmentTarget为
false
,则这是早期引用错误[2]
作为LeftHandSideExpression的({a})
是一个括号化的表达式,而不是ObjectLiteral,括号中不包含简单的赋值目标
您可能正在寻找:
1:但令人惊讶。2:Chrome抛出了一个
SyntaxError
然后似乎是错误的,这只是无效的语法。您需要在括号[1]中放入一个分解模式:
如果LeftHandSideExpression既不是ObjectLiteral,也不是ArrayLiteral,并且LeftHandSideExpression的IsValidSimpleAssignmentTarget为false
,则这是早期引用错误[2]
作为LeftHandSideExpression的({a})
是一个括号化的表达式,而不是ObjectLiteral,括号中不包含简单的赋值目标
您可能正在寻找:
1:但令人惊讶。2:Chrome抛出了一个
语法错误,这似乎是错误的,然后你期望该代码做什么?@Pointy只是测试了语言,语言告诉你那是错误的:)()
是错误的,右边不是对象,所以这也是错误的。因为您使用了错误的语法:两种浏览器都会抛出不同的错误,这仍然很有趣。您希望代码做什么?@Pointy只是测试语言。语言告诉您这是错误的:)()
是错误的,右边不是对象,所以这也是错误的。因为你使用了错误的语法:有趣的是,两个浏览器都会抛出不同的错误。嗯,如果这是语法错误,那么在ecmascript中哪里可以找到它的错误?我的意思是,如果是SyntaxError,那么它就是早期错误。我可以在哪里找到?如果LeftHandSideExpression既不是ObjectLiteral也不是ArrayLiteral,并且IsValidSimpleAssignmentTarget(LeftHandSideExpression)为false,则这是一个语法错误。
在第281页。@Jonaswillms我正确理解代码的这部分({a})
来自({a})=0
被视为AssignmentPattern@MaximPro不,在AssignmentPatternHmm的产品中不允许使用括号,如果这是一个语法错误,那么在ecmascript中哪里可以找到它的错误?我的意思是,如果它是SyntaxError,那么它是早期错误。我可以在哪里找到?如果LeftHandSideExpression既不是ObjectLiteral也不是ArrayLiteral,并且IsValidSimpleAssignmentTarget(LeftHandSideExpression)为false,则这是一个语法错误。
在第281页。@Jonaswillms我正确理解代码的这部分({a})
来自({a})=0
被视为AssignmentPattern@MaximPro不,在AssignmentPattern的产品中不允许使用括号
var a = 10;
({a} = 0);