为什么分号会改变Chrome控制台中的JavaScript行为

此代码在google chrome 控制台中完美执行:

{ a, b } = { a: 10, b: 20 }

{a: 10, b: 20}

但是当我在最后添加分号时,出现语法错误:

{ a, b } = { a: 10, b: 20 };

VM115:1 未捕获的语法错误:意外标记“=”

有人能告诉我为什么吗?AFAIK;不应该影响 javascript 中的含义,但显然它在 google chrome 控制台中会影响。

PS 请注意,此行为仅在 Google Chrome 控制台中观察到。

回答

没有 var 的对象解构仅在赋值表达式周围有括号时才有效{——JavaScript 中的语句不能以 开头,否则它将是一个块。

您遇到的行为来自于 Chrome devtools 中以开头{和结尾的输入的特殊处理}。这种启发式有时很有用,但在出错的情况下会导致很多混乱。


以上是为什么分号会改变Chrome控制台中的JavaScript行为的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>