ES2015 (ES6) で覚えておきたい構文 : let・const 宣言
JavaScript の宣言は var
しかなかったが、ES2015 になって let
と const
という宣言が増えた。
単純にいえば、let
は再代入可能、const
は再代入不可、である。その他、var
だとブロック外から参照できてしまっていたスコープの問題も、let
と const
ならスコープを持つようになるので良い感じ。
基本的には var
宣言の代わりに let
・const
を使うようにし、var
は使わない方針で問題ないだろう。
一つ注意したいのは、const
宣言したオブジェクトは「再代入ができない」だけで、オブジェクトの要素に対しては変更が入れられるということである。つまり、
// const で空の配列を定義
const hoge = [];
// 文字列 'a' を hoge に追加することができる
hoge.push('a');
こういう操作は可能である。
// こういった再代入は不可能、ということ
const hoge = [];
hoge = ['a']; // Error
この辺の感覚は、Java における final
演算子と同じ感覚。final List
にしても list.add()
はできちゃうのと同じ仕組み。