ECMA Script6(JavaScript)のvarとletとconstの違い

ECMA Script6(JavaScript)のvarとletとconstの違い

関数スコープとブロックスコープECMA Script6(JavaScript)のvarとletとconstの違いについてです。

varは変数を定義するときに使用します。関数スコープとなります。

constは定数を定義するときに使用します。ブロックスコープとなります。

letは今までvarで記述していた箇所をletに置き換えることができます。ブロックスコープとなります。

今後はvarは使用する機会はないと思われます。

letとconstの違い

letは再代入可能なのに対し、constは定数なので再代入が不可という違いがあります。

関数スコープとブロックスコープ

関数スコープとブロックスコープについてです。

関数スコープとは、関数内ならどこからでも参照できることを意味します。以下、例です。

{
  var a = 'test';
}
{
  console.log(a);
}

結果は以下のようになります。

test

ブロックスコープは、ブロック内でのみ参照できます。

if (true) {
  let a = "test"
  console.log(a)
}
console.log(a)

結果は以下のようになります。

test
Uncaught ReferenceError: a is not defined

constの注意点

constは再代入が不可能であるが、値の変更は不可能ではないと言う点に注意です。

const arr = [1, 2, 3];
arr[0] = 3;// これは可能
arr = [];// これはエラー

コメント

タイトルとURLをコピーしました