1

Javavscriptの次のコードの場合:

// add HTML to container
// show the container on the DOM
// call a non-existent function on an object

FirefoxとIEがHTMLを表示するのを正常に確認しました。FirebugとIEのJSエラーを示すコードの3行目は、抑制/無視されているように見えます。

ブラウザは一般的に悪いJSを無視しますか?alert("line 4");または、コードの3行目の後に追加したとします。JSの解釈は違法なJSコード行で終了するため、4行目は無視されますか?

シナリオをjsFiddleでテストしましたが、jsFiddleがブラウザーと同じように動作するかどうかはわかりません。

4

1 に答える 1

3

JavaScript エンジンは、 Exceptionに到達するまでコードを実行します。その後の動作は、以下に応じて変化します。

  • にある場合try..catch、実行は から再開されcatchます。
  • 非同期で呼び出された場合、このシーケンスはその時点で終了しますが、進行中の他のシーケンスは続行されます。(簡単な例はwindow.setTimeout)
  • に直接ある場合、その時点から<script>の残りのコード<script>は実行されませんが、次<script>の のコードは実行されます。

ホイストされた何かで例外が発生した場合、実行ポイントは 0 行目と考えてください。

throwキーワードを使用して、何が起こるかを簡単にテストできます。例えば

console.log(1); // logs
console.log(2); // logs
throw 'eep';
console.log(4); // does not log
于 2013-01-10T16:09:33.587 に答える