ECMAScript 2015 (ES6)のletとconstについて
varとlet,constのスコープについて
varを使って宣言した変数のスコープは、関数またはグローバルになります。
{
var x = 'Hello';
}
console.log(x); // Hello
letやconstで宣言した変数のスコープは、ブロックスコープです。
{
let x = 'Hello';
}
console.log(x); // エラー
letで宣言した変数xのスコープはブロックスコープのため、ブロックの外から変数xにアクセスできません。
letの重複チェック
varは同じ変数を何回でも宣言できます。
var i = 123;
var i = 456;
console.log(i); // 456
letやconstは同じ変数を再宣言するとエラーになります。
let i = 123;
let i = 456; // エラー
console.log(i);
constの変数の変更
constで宣言した変数は再代入できませんが、値を変更することはできます。
const i = 1;
i = 2; // 再代入できない
console.log(i);
次のように配列オブジェクトの要素を変更することはできます。
const i = [1, 2, 3];
i[1] = 4; // 値の変更はできる
console.log(i); // [ 1, 4, 3 ]