見出し画像

やっぱり。JavaScript!-巻き上げってなんなんだ?

JavascriptのエラーとなりやすいHoisting(巻き上げ)ってなかなかわかりにくいので整理してみます。

結論は

関数と変数は、コードを実行する前に実行コンテキストのメモリに格納 されます。これがHoisting(巻き上げ)です。

関数は関数全体を参照して格納され、varがundefinedの値を持つ変数、およびletとconstの変数は初期化されずに格納されます。

と、まとめられており、いっぱい使っているとだんだん理解が深まると結んであります。

ざっくり言うと変数宣言をしてそれ以下のコードに適用すれば良いと思っているのに、その前の処理に影響が出てしまう。他の言語を使っていた人からみると、なんだか変な感じ何すると言うことです。そしてcnst,letなどの前置詞が作られ、他の言語との整合性をたもつ形に落ち着いてきているところのようです。


こちらのサイトでも説明がされています。これは翻訳したものを書いているということです。

プログラマーが内側の関数を上に定義し、外側の(内側の関数を呼び出す)関数を下に書かなくても済むようにしたということです。

もともと"var"で宣言することになっていたので、便利にしようとした感じがありますね。


この記事が気に入ったらサポートをしてみませんか?