ホームページ > 記事 > ウェブフロントエンド > js変数のプロモーションと関数宣言の事前解析例の詳細な説明
1. まず関数のスコープを理解します
JavaScript では、変数の定義はコード ブロックではなく、関数のスコープで定義されます。つまり、変数が関数内で定義されている場合、その変数は関数の外部からは見えません。また、変数が if や for などのコード ブロック内で定義されている場合は、コード ブロックの外側でも表示されます。さらに、JavaScript では、「グローバル変数」という用語は、特定の関数内の変数を指す「ローカル変数」とは対照的に、すべての関数の外部で定義された変数を指します。このうち、関数内のコードは、独自のローカル変数にアクセスするのと同じようにグローバル変数にアクセスできますが、その逆はできません。
2. 変数のプロモーション
実際には、JavaScript コードが実行される前にコンパイル段階があります。コンパイル後、上から下まで 1 行ずつ解釈されて実行されます。変数の昇格はコンパイル フェーズ中に発生し、変数と関数の宣言をスコープの先頭に昇格させます。 (コンパイル フェーズのタスクの 1 つは、変数をそのスコープに関連付けることです)。
したがって、コード var a =2; の場合、コンパイラは 2 行のコード var a; a = 2; を認識します。最初のステートメントはコンパイル フェーズ中に処理されます。 2 番目のステートメントは代入ステートメントであり、実行フェーズ中に処理されます。
1. 昇格された部分は変数宣言のみであり、代入ステートメントと実行可能コードのロジックはそのまま残ります
2. 昇格では、変数宣言がグローバル スコープではなく、変数が配置されている変数スコープの先頭にのみ昇格されます。
3. 変数宣言と関数宣言の両方が昇格されますが、関数宣言が最初に昇格され、次に変数宣言が続きます。
4. 関数宣言の場合、同じ関数変数宣言が定義されている場合、後から定義された宣言が前の宣言を上書きします
以上がjs変数のプロモーションと関数宣言の事前解析例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。