为什么分号会改变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 中以开头{和结尾的输入的特殊处理}。这种启发式有时很有用,但在出错的情况下会导致很多混乱。