constとlet
変数宣言におけるconstとlet
ES6から、変数宣言に使える予約語に、constとletが増えました。
これまではvarを使用して変数宣言をしていましたが、これからはvarを使うことはありません。
必ず、constまたはletを使うようにしましょう。
constとletの違い
const
constは、再代入不可の変数に対して使用します。 つまり、constで宣言した変数は、変数の上書きができません。
const hoge = 'hoge' hoge = 'hello' //Uncaught TypeError: Assignment to constant variable. ←エラーになります。
let
letは、constと異なり、変数の再代入が可能です。ここまでだとvarとほぼ同じ動きですが、大きな違いはletはブロックスコープとなっていることです。
//簡単な例として、ブロック内でvarとletを宣言し、使用できる箇所を試してみます。 { let str1 = 'hoge' var str2 = 'huga' } console.log(str1)//Uncaught ReferenceError: str1 is not defined console.log(str2)//huga(varで宣言したほうはアクセス可能)
constとletの違いは以上となります。
では、なぜvarではなくこれらの予約語を使う必要があるのでしょうか?
平たく言うと、その変数をどう使用するかの意図を込めることができるということがあります。
プログラムは、書く以上に読む・読まれることが多いため、その意図を読む人間に正しく伝えたほうが良いです。
つまり、constを使用して宣言している変数は、以降で変えない(変えたくない)変数であることが明瞭ですし、
letを使用するにしても、そのブロック内でのみ使用されていることが明らかになります。
varを使用している場合には、これらのメリットが享受できません。
長々となりましたが、とりあえず、varは使わない、変わる可能性がある場合はconst、そうでない場合はletを使うということだけ気を付ければ大丈夫でしょう。