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

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

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

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

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


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





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


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




コードをコピー

コードは次のとおりです: function Hello() {
alert("Hello World");
Hello() ;



このように、プログラムは 2 つのセクションに分割されており、JS エンジンはそれらを結合しません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。