ソースコードを追いかけて

一見複雑怪奇。 でも、ていねいにコードを追っていくと「みえて」きた! ただいまプログラミング学び中。 勉強になったことなどをメモとしてまとめています。 Java、HTML、CSS、JavaScript、、など。 他、IT系でなるほど〜って思ったことなども。

ホイスティング【JavaScript】【動画学習アウトプット】

*Udemyの動画学習のアウトプット会!!*

ご参考程度に楽しんでいただければと思います♪

 

☆ホイスティング


コード実行前にメモリ上にコード内で使われる変数などがあらかじめ確保される!!仕組み

varとlet、constでは動きが違うので注意!!

 

☆varの場合

変数定義がされた時点でJavaScriptエンジンによって『undefind』で初期化される
→コード上でvarによる変数の定義前に呼び出した場合『undefind』

 

☆let・constの場合

vaeのような初期化は行われない
→定義前に呼ぶとエラーとなる

 

*また、functionもvarと同じように定義前に呼んでも問題なく実行される

 

※undefind:「値が未定義」という意味  
JavaScriptエンジンによって自動的に設定されてる特殊な値

 

var コード例)

console.log(a);
var a = 0;

 

これは、イメージとしてはvarのaだけ先に定義されている感じ。

var a;
console.log(a);
a = 0;

 

*あくまでイメージ。実際にvar aを宣言するわけではない

 


★まとめ★
コンテキストが生成されるごとにホイスティングが発生し、
『宣言部はメモリ上に展開される』

 

 

****************

 ランキングに参加しています*応援いただけるとうれしいです

ブログランキング・にほんブログ村へにほんブログ村