ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript学習ノート2 関数_基礎知識

Javascript学習ノート2 関数_基礎知識

WBOY
WBOYオリジナル
2016-05-16 18:36:521001ブラウズ

コードをコピーします コードは次のとおりです:

関数 Hello () {
alert("Hello");
Hello();
var Hello = function () {
alert("Hello"); >}
Hello();


実際には、それらはすべて同じです。
しかし、関数を変更すると、非常に奇妙な問題が見つかるでしょう。





Hello World が 2 回連続して出力されることがわかります。私たちが想像していたHello and Hello Worldではなく。
これは、JavaScript が完全に解釈されて順番に実行されるわけではありませんが、プリコンパイル プロセス中に、定義された関数が最初に実行され、すべての関数が最初に実行されるためです。プログラムの実行効率を向上させるために作成され、デフォルト値は未定義です。つまり、上記のコードは実際には JS エンジンによって次の形式にプリコンパイルされています:


コードをコピーします コードは次のとおりです。
🎜>
渡すことができます。 上記のコードは、関数がデータであり変数でもあることを明確に示しています。「関数」に値を代入 (再割り当て) することもできます。もちろん、この状況を防ぐために、次のこともできます:




コードをコピー


コードは次のとおりです: