3

入力すると

}{

Firefox または Chrome のコンソールでは、結果はSyntaxErrorではなくundefinedになります。

この構造はundefinedを返します (}!{ のような構造は false を返します)。そのような行動の理由は何ですか?

4

1 に答える 1

7

コンソールに入るdebugger;と、ブレークポイントが表示され、答えが明らかになります:

with ((window && window.console && window.console._commandLineAPI) || {}) {
debugger;
}

Chrome の開発者ツールでは、入力はwithブロック内にラップされ、文字通り評価されます。したがって、 を入れると}{、以下が評価されます。

with ((window && window.console && window.console._commandLineAPI) || {}) {
}{
}

これは空のwithブロックで、その後に空のブロックが続きます。

読者への演習: やってみる}for(;;){

于 2012-08-18T21:35:30.950 に答える