【用語の解説】javascript Hoisting(ホイスティング)

Hoisting(ホイスティング)とは

Hoistingは、JavaScriptにおいて変数や関数の宣言を評価時に上に「移動」させるという動作を指します。

このことから、変数や関数の宣言が実行前に評価されるという性質があります。

このため、宣言された変数や関数は、スクリプト内のどこからでもアクセスできます。

例えば、次のようなコードを考えます。

console.log(hoistedVariable);
var hoistedVariable = "I am a hoisted variable";

このコードは、変数hoistedVariableが未定義のままアクセスされているというエラーになりますが、実際は以下のように実行されます。

var hoistedVariable;
console.log(hoistedVariable);
hoistedVariable = "I am a hoisted variable";

このように、変数の宣言が実行前に上に「移動」され、未定義の状態で宣言された変数は「undefined」として扱われます。