ホイスティング(巻き上げ)とは
変数や関数の定義(宣言)をコード実行前にメモリに配置すること。
メリット
定義する前に呼び出しても、問題なく実行されます(例:関数の定義よりも、実行を先に書く)。
以下のようなコードも実行可能です◎
findName("ゆず");
function findName(name) {
console.log("あの人の名前は、" + name);
}
注意ポイント
関数を呼び出した後に、変数を含む定義や初期化を行うと、うまく実行されません。
例えば、以下のコードでは、console.log(name);はundefinedを返します。宣言は巻き上げられるが、初期化は巻き上げられないからです。
console.log(name);
var name; // 宣言
name = "ゆず"; // 初期化