ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript ホイスティングの謎を解く: コーディング スキルを向上させましょう!

JavaScript ホイスティングの謎を解く: コーディング スキルを向上させましょう!

PHPz
PHPzオリジナル
2024-08-08 10:25:51741ブラウズ

こんにちは?あなたを驚かせるかもしれない JavaScript の概念、Hoisting! について話しましょう。 ?

ホイスティングとは、コンパイル段階で JavaScript が変数と関数宣言をどのように処理するかに関するものです。基本的に、コードが実行される前であっても、それらをスコープの先頭に移動します。待って、何!
では、これは実際には何を意味するのでしょうか?
さて、次のコードがあるとしましょう:

   `console.log(myVar);
   var myVar = "Hello, world!";
   // It outputs: `undefined`

宣言される前に myVar をログに記録しようとしても、コードはエラーなしで実行されます。これは、メモリの作成フェーズ中に、myVar にデフォルト値の未定義が割り当てられるためです。 (JavaScript の仕組みについて書いた前回の投稿を参照してください。)

別の例を見てみましょう:
myFun();
function myFun() { console.log("私は FuN"); }

この場合、関数全体がメモリに保存されます。これをコンソール ( console.log(myFun) ) すると、関数全体が出力または実行され、「I am FuN.

」と出力されることがわかります。

かなりクールですね?ホイスティングはコードに興味深い影響を与える可能性があるため、その仕組みを理解することが重要です。 ?他に話したい JavaScript の概念があれば、お知らせください!

最後にアロー関数についてはどうでしょうか? ???

これも変数のように扱われ、関数全体をその中に格納します。宣言前に myFun() のように呼び出そうとすると、エラーが発生します。

これは例です:

    `console.log("Before declaration myArrowFun: ", myArrowFun)
    var myArrowFun = () => { console.log("I am Arrow FuN"); }
    console.log("After declaration myArrowFun: ", myArrowFun)
    console.log("Call declaration myArrowFun: ", myArrowFun())`

JavaScript Hoisting Demystified: Elevate Your Coding Skills!

以上がJavaScript ホイスティングの謎を解く: コーディング スキルを向上させましょう!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。