如果我运行以下Chrome
版本,则没有错误。^72
JavaScript
{ prop: p } = { prop: 'prop' }
>> { prop: 'prop' }
因此,这行代码意外地被解释为表达式语句。
但是,如果我在末尾使用分号运行相同的代码,它会按预期运行。
{ prop: p } = { prop: 'prop' };
>> Uncaught SyntaxError: Unexpected token =
这是意料之中的,因为初始值{
告诉JavaScript
引擎它是一个代码块,除非我们用括号消除歧义。
为什么分号会发生这种情况,但没有分号会发生这种情况?