色んな人から何百回も言われてきたことな気がするが……
個人的にはvar派です。大規模なものを書くことが少ないので許してくれ。
主な違い
let | const | var | |
---|---|---|---|
再宣言 | × | × | ○ |
再代入 | ○ | × | ○ |
ES5以前 | × | × | ○ |
初心者向けだからスコープとかの話はしないぞ!
使い分け
ES5以前の場合
全部var
めっちゃ再宣言に気をつけながら変数を使う
ES6以降の場合
定数はconst, 変数はlet
letとconstの違いは"再代入ができるか"なので、再代入されてほしくない定数はconstで。
varは再宣言の心配があるのでなるべく使わないほうがいい。
ところで
- 本業だったり大規模だったりするならともかく、趣味で小規模なものを作るくらいならvarでもいいと思うんだ
- letやconstだと宣言前参照はReference Errorが出ますが、varはUndefinedを返します。varで宣言する変数は先に場所をとるだけとっておくという挙動("巻き上げ"と呼ぶらしい)をとるらしいです。
参考