関数 Hello () {
alert("Hello");
Hello();
var Hello = function () {
alert("Hello"); >}
Hello();
実際には、それらはすべて同じです。
しかし、関数を変更すると、非常に奇妙な問題が見つかるでしょう。
Hello World が 2 回連続して出力されることがわかります。私たちが想像していたHello and Hello Worldではなく。
これは、JavaScript が完全に解釈されて順番に実行されるわけではありませんが、プリコンパイル プロセス中に、定義された関数が最初に実行され、すべての関数が最初に実行されるためです。プログラムの実行効率を向上させるために作成され、デフォルト値は未定義です。つまり、上記のコードは実際には JS エンジンによって次の形式にプリコンパイルされています:
🎜>
渡すことができます。 上記のコードは、関数がデータであり変数でもあることを明確に示しています。「関数」に値を代入 (再割り当て) することもできます。もちろん、この状況を防ぐために、次のこともできます:
コードをコピー