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
」として扱われます。