const let var の違いについて

React入門ということで基礎からJavaScriptを学習しなおしています。
ということでES2015〜の記法について const let var の違いまとめ。

var

再宣言=可能

再代入=可能

スコープ=関数スコープ

繰り返し構文=可能

一番縛りが緩い変数。そのゆるさが元でバグの温床になりやすいのでES2015〜ではほとんど使われない。
同じ変数名で再宣言できてしまう。
基本的に使わない方が良い。

let

再宣言=不可能

再代入=可能

スコープ=ブロックスコープ

繰り返し構文=可能

同じ変数名で再宣言できない。

const

再宣言=不可能

再代入=不可能

スコープ=ブロックスコープ

繰り返し構文=不可能

超厳格で再宣言も再代入もできないので、意図せずに値を書き換えてしまうことを防ぐ。
ただし、オブジェクト型のプロパティに関しては変更が可能。

使い分け

基本的にはconstを使って、繰り返し構文の中ではletを使うようにする。