以下のように
var a = 3; >
実際には 2 つのステップがあります:
1 a を未定義に初期化する
2 値を割り当てる 3
したがって、いくつかの「信じられない」現象が発生します。つまり、JS の変数は最初に使用されてから宣言されます。これは Java では許可されません。
int a = 1;
コンパイルは失敗します。ただし、JS では次のようにできます。
未定義ですが、エラーは報告されません。これは、 a が実際に宣言されており、未定義であることを示しています。
「var a」のない「alert(a)」だけの場合、JS エンジンはエラーを報告します。
FFは以下の通り
先に使用してから宣言することもできますが、割り当ての効果は失われます。次のように
今回の出力は 1 ではなく未定義のままです。
別の例、
コードをコピーします
コードは正式にはalertの後に記述されていますが、エンジンは最初にvar宣言を自動的に処理します。最終的な出力は true です。
これを理解すれば、次のコードの結果を理解するのは難しくありません。
コードをコピーします
}
alert(a); 🎜>