Webサイト工事中です! 閲覧できますが不具合があるかもしれません

JavaScriptでの変数宣言 (var, let, const)

JavaScriptへの理解が古いので、再度勉強してます。

今回は変数の宣言について

 

昔のJavaScriptではvarで変数を定義してましたが、これはモダンでないらしい。

なぜなら、“var”はブロックスコープを持たないからだそうです

例えば、

if(true){
    var test = "test";
}
console.log(test); //動く

というコードで、ifの閉じ括弧がきた時に変数の寿命が来ると思いきや、来ない… 閉じ括弧後のconsole.logが動いてしまいます。

 

function test(){
    var test = "test";
}

test();
console.log(test); //動かない

このように変数ブロック内にある場合は変数の外では動かないけど、ifやforのようなコードブロックは外から見えてしまいます。

 

そこで let を使います。

letはブロックスコープを持つので、C++などの言語と同じ感覚で変数の寿命をコントロールできます。

if(true){
    let test = "test";
}
console.log(test); //動かない

 

letの他にもconstを使用できます。

constはC++のconstと同じように一度定義された後は、変更しようとした際にエラーを出します。またletと同じようにブロックスコープは動きます。

const test = "test";
test = "hello world!"; //エラー!

 

確かな力が身につくJavaScript「超」入門 第2版

確かな力が身につくJavaScript「超」入門 第2版

狩野 祐東
2,482円(11/23 00:38時点)
Amazonの情報を掲載しています
改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

山田 祥寛
3,278円(11/23 01:03時点)
発売日: 2016/09/30
Amazonの情報を掲載しています
JavaScript コードレシピ集

JavaScript コードレシピ集

池田 泰延, 鹿野 壮
3,278円(11/23 18:30時点)
Amazonの情報を掲載しています

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

SESSIONS や Tokyo Demo Fest 等のイベントを主催してる人
各種最適化やIT・インフラ・3DCGが好き
◆YouTube: http://youtube.com/@FL1NE_
◆X(Twitter): @FL1NE

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次