let, const , var

目的

宣言方法一覧

  • const
  • let
  • var

const

1度しか代入できない変数(定数)
スコープの制約がある

実行

{
  const a = 1;
  console.log(a);
}

実行結果

1

実行

{
    const a = 1;
    a = 2;
    console.log(a);
}

実行結果

再代入を実施するとエラーが発生する

VM498:3 Uncaught TypeError: Assignment to constant variable.
    at <anonymous>:3:7

実行

{
  const a = 1;
}
console.log(a);

実行結果

スコープ外では宣言していないためエラーが発生する

VM191:1 Uncaught ReferenceError: a is not defined
    at <anonymous>:1:13

let

再代入可能
スコープの制約がある

実行

{
  let b = 1;
  b = 2;
  console.log(b);
}

実行結果

再代入され1ではなく2になる

2

実行

{
  let b = 1;
}
console.log(b);

実行結果

スコープ外なのでエラーが発生する

VM346:1 Uncaught ReferenceError: b is not defined
    at <anonymous>:1:13

var

再代入可能
スコープの制約がない
(使用は非推奨)

実行

{
  let c = 1;
  c = 2;
  console.log(c);
}

実行結果

2

実行

{
  let c = 1;
}
console.log(c);

実行結果

1