【Javascript】var、let、constの違い・使い方

この記事では、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入門 基本文法

コメント