为什么像{}在Firefox和Chrome控制台中的构造返回未定义?

sem*_*emi 3 javascript firefox google-chrome-devtools

如果我输入

}{
Run Code Online (Sandbox Code Playgroud)

在Firefox或Chrome的控制台中,结果是未定义的,而不是SyntaxError.

这个构造返回undefined(构造像}!{return false).这种行为的原因是什么?

Rob*_*b W 7

当您进入debugger;控制台时,会出现一个断点,显示答案:

with ((window && window.console && window.console._commandLineAPI) || {}) {
debugger;
}
Run Code Online (Sandbox Code Playgroud)

在Chrome的开发人员工具中,输入包含在一个with块中,然后进行字面评估.因此,当您输入时}{,将评估以下内容:

with ((window && window.console && window.console._commandLineAPI) || {}) {
}{
}
Run Code Online (Sandbox Code Playgroud)

这是一个空with块,后面是一个空块.

练习读者:试试 }for(;;){