塩焼きブログ

塩焼きに関しての研究内容を公開しています

JavaScriptのホイスティング

JavaScriptのホイスティング(巻き上げ)を体験する。JavaScriptでは関数スコープというものを使って変数を宣言するが、関数内のどこで宣言された変数でも関数内であれば既に宣言されているということにるらしい。

var foo = 'global';
(function() {
  console.log(foo);
  var foo = 'local';
  console.log(foo);
})();
console.log(foo);
// undefined
// local
// global

このように宣言時に代入される文字列こそ取得できないものの、既に変数が宣言されているのと同様の結果を得られる。

変数は宣言しただけではundefinedになる

var foo;
console.log(foo);
// undefined