ホームページ > ウェブフロントエンド > jsチュートリアル > jsのコンパイルと実行順序を詳しく解説

jsのコンパイルと実行順序を詳しく解説

小云云
リリース: 2018-02-24 14:27:01
オリジナル
1495 人が閲覧しました

JavaScript は、スクリプト タグで区切られてセクションごとに実行されます。各セクションを実行する前に、「プリコンパイル」という 2 つの処理が行われます。1. すべての var 変数の宣言 (最初は未定義)、2. 関数の解析。声明。

「ウィンドウ スコープの a = 1 と var a = 1」の違いについての古典的な記事があります:

a = 1相当于window.a = 1,是动态地为window添加一个成员; 
var a = 1是在当前作用域(也就是window)下声明一个a,这个声明是在整个作用域内都有效的。 
换句话说,其实区别就在于var a = 1比a = 1多了一个声明的行为。
ログイン後にコピー

次の例を見てください:
1.

alert(w);
alert('ok');
w = 2;
ログイン後にコピー

エラー: w が定義されていません
2.

alert(w);
alert('ok');var w = 2;
ログイン後にコピー

は未定義とOKを順番にポップアップします。プリコンパイル中に、変数 w が宣言されます。コードのalert(w) 行が実行されるとき、t にはまだ値が割り当てられていないため、unknown がポップアップ表示されます。

3.

a();function a() {}alert('ok');
ログイン後にコピー

ポップアップOK。プリコンパイル中に、定義関数ステートメント function a() {} が解析され、スムーズに実行されます。

4.

b();var b = function() {};
alert('ok');
ログイン後にコピー

bは関数ではないため、実行するとエラーが報告されます。プリコンパイル中に、変数 b = unknown が宣言されました。b() が実行されるとき、a は依然として unknown に等しく、関数ではないため、b() の実行時にエラーが報告されます。

5.

<script type="text/javascript">
    c();
    alert(&#39;first&#39;);</script><script type="text/javascript">
    alert(&#39;second&#39;);</script>
ログイン後にコピー
2 番目のポップアップが表示されます。 JavaScript はセクションごとに実行されるため、最初のセクションが c() に実行されるとエラーが報告され、最初のセクション全体が再度実行されることはなく、2 番目のセクションは正常に実行されます。

関連する推奨事項:


JavaScriptの実行順序分析

JavaScriptの実行順序の簡単な紹介

HTMLでのJSの読み込みと実行順序の詳細な説明

以上がjsのコンパイルと実行順序を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート