ホームページ > 記事 > ウェブフロントエンド > JavaScript ホイスティングの謎を解く: コーディング スキルを向上させましょう!
こんにちは?あなたを驚かせるかもしれない 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 ホイスティングの謎を解く: コーディング スキルを向上させましょう!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。