ローカル変数とグローバル変数

var a = 10;
console.log(`var 1:${a}`); // 10
console.log(`var 2:${getNmbr()}`); // 99

function getNmbr() {
  var a = 99;
  console.log(`var 3:${a}`); // 99
  console.log(`var 4:${window.a}`); // 10
  console.log(`var 5:${this.a}`); // 10
  return a;
}

 グローバル変数 (var宣言の場合)

  • グローバル変数とローカル変数はメモリされる場所が異なる
  • グローバル変数はwindowオブジェクトに保存される
  • ページが開いている間ずっとメモリに残っている

ローカル変数 (var宣言の場合)

  • 関数の中で宣言した変数のこと
  • 関数の中でしか使えない。他の関数から更新されることがないので安全 
  • 関数実行終了後にメモリから削除される
  • this.randomNumber または window.randomNumber でファンクションの中でグローバル変数を参照することが出来る
  • thisで参照されるのはブラウザの場合はwindowオブジェクトになる。だからthis. と window. の両方で参照が出来る
const b = 10;
console.log(`const 1:${b}`); // 10
console.log(`const 2:${getNmbr2()}`); // 10

function getNmbr2() {
  const b = 99;
  console.log(`const 3:${b}`); // 99
  console.log(`const 4:${window.b}`); // undefined
  console.log(`const 5:${this.b}`); // undefined
  return a;
}