sai_dive IL

学んだことのアウトプットブログ

【JavaScript】ホイスティング

ホイスティングとは?

  • コンテキスト内で宣言した変数、関数の定義をコード実行前にメモリーに配置。宣言の巻き上げ
  • 関数を実行よりも後に、宣言が書いてあっても先に関数の定義がメモリーに配置されているため実行可能。
  • varの宣言より、先に呼び出した場合は、変数がメモリーに配置され、値をundefindの初期化がしているため実行可能。varは非推奨。
  • letとconstの宣言より、先に呼び出した場合は、変数がメモリーに配置されているが、値が初期化されていないためエラーが発生。
  • 関数式の場合は変数と同じ挙動になるため注意が必要。