javascriptで変数でよく使われているのがvarだと思います。
変数はvar以外にもletやconstなどがあります。
varは非常に使いやすく再代入も可能なので使う人も多いと思います。
letやconstはvarよりも厳密なので思わぬエラーを防いでくれることもあります。
それではそれぞれの特徴についてみていきたいと思います。
変数について
var
varを使うことでグローバルスコープの変数を宣言することができ初期化できます。
var 変数名;
varで変数を指定する場合は上記のように記述します。
変数名のところに任意で変数名を入れます。
宣言よりも前に変数にアクセスすると
console.log(test);
var test = 'test';
varを使って宣言よりも前に変数にアクセスするとエラーにはならずに未定義になります。
letやconstだとエラーになります。
const
constは再代入ができないという特徴があります。
ブロックスコープのため関数内であってもこのブロックの外から参照しようとするとエラーになります。
また変数の宣言時には必ず初期値しなければいけないというルールがあります。
const 変数名 = 初期値;
let
varは一度宣言をしてもう一度宣言してもエラーにはなりません。
ですがletを使うと再宣言を行うとエラーになります。
letは「レトゥ」と呼びます。
またconstと同じくブロックスコープのため関数内であってもこのブロックの外から参照しようとするとエラーになります。
let name = 'オレンジ';
console.log(name); //オレンジ
上記は同じブロック内なのでうまくいきます。
ところが下記のようにブロックの外で変数を呼び出そうとするとエラーになります。
if (true) {
let vege = 'レタス';
}
console.log(vege); //ブロックの外なのでエラーになる
ブロックとは
ブロックとはかっこで囲まれた文や関数のことを指します。
最後に
変数というとわりとvarを使う人も多いと思いますが思わぬエラーが起こるのを防ぐためにletやconstを使うほうが良いかもしれません。
letやconstはvarよりもルールなどがありますがそうした制限があるほうが思わぬトラブルやエラーの対応にもつながると思います。
コメント