【javascript】varとletとconstの違いは?

最近プログラミングかじった人「現在プロゲートでjavaScriptの基礎の勉強中。現在ES6という新しいバージョンの方をやってて、varという単語がでてこない。私がやってるのは違う言語だったのかな?letとconstの違いってあるかな?」
 
こんな疑問に対しての記事です。

私は最近プログラミングにかじりだして、javaScriptの勉強をしてます。

記事を書いてる時点では、ポートフェリオ(くだいていえばWebの作品集)の段階ではないですが、学んでおります。

「varはいつどこででてくるんだよ」って思いそうですが、どうやら新しいバージョンではvarは使わないようです。

この記事では

  • Varは旧バージョンの単語
  • Letとconstは簡単にいえばコピペできるかの違い
そのへんを伝えようと思います。
注意
プログラミングを始めたてでググるとわからない方も多いかと想ったので、かなりくだけた文章になってます。後了承ください。
 

Varは旧バージョンで使われてた単語のようだ

何かを眺める女性

プロゲートでES6の方を勉強してる方はあの単語はまだ出てこんのか?って思うはずです。

18年8月現在ではES5が旧バージョンで、ES6が新バージョンです。

くだいて言うとオンラインゲームの旧版と拡張版だと思ってもらえばいいかなって気がします。

VarはES6では使わないみたいだ。

私は現在プロゲートのjavaScriptのES6の配列がちょうど終わったところでして、この時点ではvarは出てきません。

なのでもしかしたらこのまま進めていくとvarに出会うかもですが、現時点ではないと思ってます。

なぜみんなjavaScriptではvarのが多いの?

それはみんな旧バージョンES5以前のを勉強した人が多いからだと思います。

有名ブログのソースコード(音楽でいうと楽譜。くだけすぎか)はほとんどvarですね。

先輩方はes5以前の始めた方が多いですが、おそらくES6も勉強してるかと思われます。

ES5はVHSのビデオテープ
ES6はブルーレイディスク
のような感じで世代間ギャップでしょうか?

ES5ではconstのようなものはあるの?

ES5でconstのようなものはあるのかはわかりません。

Varは値を更新することができます。

varは値を宣言する
var water="南アルプス";
console.log(water);
water="いろはす";
console.log(water);
 

これからjavaScript始める人はES6を始めればオケ

やはりすでにES6を始めた人は「なんだよ、ES5もやらないといけないのか?><」って気持ちになりそうですね。

でもプロゲートいうには「全くの初めてならES6から始めるのをオススメします」なので、それに従いましょう。

「あんた、なぜES5触ったん?」はこの記事でvarのことを書きたいからですね。

 

Letとconstは簡単に言うとコピペできるか?できないの違い

ロボット

少なくてもES5だと定数にあたるものはあるのか?は不明でした。

ここからはLetとconstの違いを説明します。

Letはvarに相当してるという認識

Letとは変数の宣言を行う行為です。っていきなり教科書的に書いてもわからないと思うので、こうに解説します。
今からramenはmisoだ
って宣言して、ramenを出力するとmisoが出てきます。
 
letは更新ができる
let ramen="miso";
console.log(ramen);
ramen="tonkotsu";
console.log(ramen);

Letの場合はコピペもできます。

Ramenはこれからtonkotsuに置き換える!
ってことができます。

Constはコピペできない

Constとは定数といって、一度宣言したらずっと名前はそのままです。変更はできません。
Ramenはmisoです
Ramenはtonkotsuに置き換える ←できません。
constだと更新ができない
const ramen="miso";
console.log(ramen);
ramen="tonkotsu";
console.log(ramen);
//constでは更新はできない。

どっち使ったほうがいいのかはconstかな

プロゲートとしてはconstの方を使うようになってますので、そのほうがいいかと思います。

まだ私は基礎しか触ってませんが、letだと宣言を更新した場合に間違えてコードをうつことによって、バグりわからなくなるぽいので、constのがいいんかなって思いました。

 
 

まとめ

どっかの山

VarはES5(旧バージョン)で、ES6ではあまり使われないようです。

18年8月現在ではES6なので、Letとconstが主流です。

Letよりはconstという定数のが間違えたときの事故は少ないみたいです。

かなりくだけすぎて、わかりやすくどころか違う話になってそうですが、はしくれとしてお許しください。