JavaScriptのスコープ
スコープ
・グローバルスコープ …スクリプト全体から参照できる
・関数スコープ …関数定義の中でのみ参照できる。var
・ブロックスコープ …{ }で囲われた部分(ECMAScript2015より)。let、const
例
var scope = 'グローバルスコープ';
function kansu() {
var scope = '関数スコープ';
return scope;
}
↓
・関数定義の外でvar宣言した変数 →グローバル変数
・関数定義の内でvar宣言した変数 →ローカル変数
命令を使わずに宣言された変数は、すべてグローバル変数となる
→関数スコープ変数を定義するには、必ずvar命令を使用しなければならない
変数宣言
再宣言
○var
×let
×const
再代入
○var
○let
×const
スコープ
var 関数スコープ
let ブロックスコープ
const ブロックスコープ
ホイスティング(変数の巻き上げ)
var undefined
let エラー
const エラー