この記事では、Javascript(ES2015)の変数(var、let、const)の違いとその利用方法・ソースコードについて紹介します。
## var、let、constの違い
var、let、constの違いを雑多に述べると以下の通りです。
①var・・・変数(関数スコープ)
②let・・・変数(ブロックスコープ)
③const・・・定数(ブロックスコープ)
※let、constで宣言するとブロックスコープが有効になります。(ブロック内のみ有効)
※varで宣言された変数はブロックスコープが使えません。(関数全体で有効)
※constは定数扱いなので、再代入は不可
let、constはES2015から使えるようになりました。
ブロックスコープは安全性が高いため、ES2015からは、出来る限りvarでなくletを使っていったほうが良いです。
## ソースコード
サンプルプログラムのソースコードは以下の通りです。
varでは、次のように即時関数を使うことで疑似的にスコープを作り出していました。
(ブロックスコープを擬似的に作っているのでalert関数でエラーとなります)
ES2015のlet/constを使うと、ブロックスコープが有効になるので、即時関数が不要になる分、シンプルに記述できます。
## 補足
let、constは、同じスコープ内での再宣言することはできません。
また、グローバルスコープ直下で変数宣言をしても、グローバルオブジェクトにはプロパティが作成されません。
【関連記事】
ES2015入門 基本文法
Javascript入門 基本文法
コメント