Web制作初心者必見!varとletの違いについて解説!どちらを使えばいい?【JavaScript】
![](https://daichanblog.blog/wp-content/uploads/2021/09/js.png)
JavaScriptを始めた方なら
誰もが思ったことのある疑問。
変数宣言に
「varとletどっち使えばええの?」
ちなみに、昔からずっとJS使っている人は
var派が多いです。
最近、というか2015年以降だと
let派が多いと思う。
早速マジレスすると、派閥とかに
分かれてないで、どっちかに
絞るものです。
なんならどっちも使ってる人もいますよね。
ちなみにどっち使えばいいか、
答えは簡単です。
var,letどちらを使えばいいのか
![](https://daichanblog.blog/wp-content/uploads/2020/07/3582118_s.jpg)
letです。
とりあえず黙ってlet使っとけばいいです。
なんならvarは一生使わなくてもいいです。
日本は、年功序列的な考えで、
年上からの圧えぐいから
varを使わされたりする人も
いるんじゃないでしょうか(心配
確実に言うこと聞かなくていいです。
というわけにもいかないでしょうが・・
なぜletなのか
一言で言うなら
安全なコードが書けるからです。
というか、近代のプログラミングは
超安全志向なので、
流行りに乗るという意味でも
letを使ったほうがいいです。
letが安全な理由は、
スコープにあります。
varは関数スコープ、
letはブロックスコープ
と言われています。
スコープについて
例えばこちらのコード
sample = () => {
var aaa = 0;
let bbb = 0;
if(5 < 10){
var aaa = 1;
let bbb = 1;
}
console.log(aaa);
console.log(bbb);
}
実行結果はどうなるでしょうか?
答えは
![](https://daichanblog.blog/wp-content/uploads/2021/09/無題.png)
こうなります。
aaaは1に、
bbbは0のままです。
varは関数スコープなので、
関数内のどこからでもアクセスできます。
letはブロックスコープなので、
ifの外に出るとメモリから消えます。
「じゃあ、varのほうが便利じゃん!」
って思いたいところですが、
この便利さは、
安全性を犠牲にして成り立っています。
プロジェクトが1000行を超え始めるぐらい
大きくなると、
関数も次第に大きくなり、
どんなコードを書いたのか
いちいち覚えていません。
小学校の頃、400字作文の内容を
一字一句覚えていましたか?
無理ですよね。
日本語かつ、400字程度でも
覚えられないのに、
1000行越えの英文を
覚えてるはずもなく・・。
そして、同じ変数名を使ってしまい、
・内容が上書きされ、
・臨んだ結果を得られず、
・エラーも出ないから原因を探すのが大変
というミスを先人たちは犯してきたんでしょう。
そういった経緯から、
letを使った
安全志向のコードを書くことが流行りなんでしょうね。
まとめ
以上が、
varとletの差です。
varだとスコープが広すぎて
誤動作しがちなので
letを使いましょう。
最後の方、私の推測みたいな分になってますが、
私自身、C++からプログラミングを
始めています。
そもそもvarを使いつつ、
ブロックスコープでコードを書いていたため、
先人たちのミスは、ただの私の推測です。