Ada*_*son 6 javascript syntax google-chrome destructuring object-destructuring
在Chrome
版本中,^72
如果我运行以下内容JavaScript
,则没有错误.
{ prop: p } = { prop: 'prop' }
>> { prop: 'prop' }
Run Code Online (Sandbox Code Playgroud)
因此意外地将代码行解释为表达式语句.
但是,如果我在结尾处使用分号运行相同的代码,它将按预期运行.
{ prop: p } = { prop: 'prop' };
>> Uncaught SyntaxError: Unexpected token =
Run Code Online (Sandbox Code Playgroud)
这是预期的,因为初始{
告诉JavaScript
引擎它是一个代码块,除非我们用括号消除歧义.
为什么这会出现在分号上但不是没有呢?
为什么这会出现在分号上但不是没有呢?
Chrome使用一个非常简单的测试来查看一行是否是一个对象文字:该行是以a开头还是以?{
结尾}
?如果是,则将该行评估为表达式.
{ prop: p } = { prop: 'prop' }
通过测试,但{ prop: p } = { prop: 'prop' };
没有.
有关详细信息,请参阅对象文字比较的奇数行为(不同的输入,相同的原因).
归档时间: |
|
查看次数: |
96 次 |
最近记录: |