ES2015 (ES6) で覚えておきたい構文 : let・const 宣言

JavaScript の宣言は var しかなかったが、ES2015 になって letconst という宣言が増えた。

単純にいえば、let は再代入可能、const は再代入不可、である。その他、var だとブロック外から参照できてしまっていたスコープの問題も、letconst ならスコープを持つようになるので良い感じ。

基本的には var 宣言の代わりに letconst を使うようにし、var は使わない方針で問題ないだろう。

一つ注意したいのは、const 宣言したオブジェクトは「再代入ができない」だけで、オブジェクトの要素に対しては変更が入れられるということである。つまり、

// const で空の配列を定義
const hoge = [];
// 文字列 'a' を hoge に追加することができる
hoge.push('a');

こういう操作は可能である。

// こういった再代入は不可能、ということ
const hoge = [];
hoge = ['a'];  // Error

この辺の感覚は、Java における final 演算子と同じ感覚。final List にしても list.add() はできちゃうのと同じ仕組み。