【入門編】【初心者向け】var・let・constの使い分け:なぜ現代のJSではvarを捨ててconstを優先すべきなのか – JavaScriptコア文法・モダン言語仕様と変数・関数解析バイブル

こんにちは!JavaScriptの世界へようこそ。
フロントエンドからサーバーサイドまで、あらゆる場所で動くこの言語は本当に魅力的ですよね。

今回は、JavaScriptを学び始めたばかりの人が必ず最初に出会う関門、「変数の宣言(`var`・`let`・`const`)」についてお話しします。

「とりあえず動くから `var` でいいや」と思っていませんか?
実は、現代のJavaScript開発において、`var` は「禁忌(使ってはいけないもの)」とされています。代わりに私たちは、`const` を最優先し、必要に応じて `let` を使うというルールを徹底しています。

なぜそんなルールがあるのか?
ここをクリアすれば、あなたの書くコードの安全性は劇的に跳ね上がりますよ。さあ、一緒に本質をマスターしていきましょう!

—

1. 変数とは何か?(身近な例えで理解する)

プログラミングにおける「変数」とは、よく「データをしまっておくための箱」に例えられます。

例えば、ゲームのスコアを保存したいとき、

  • 箱に「`score`」という名前をつける
  • その中に「`100`」という数字を入れる

これが変数宣言の基本です。JavaScriptでは、この「箱」を作るために3つのキーワード(`var`, `let`, `const`)が用意されています。しかし、この箱の扱い方が歴史的背景や仕様によって大きく異なります。

—

2. 三銃士の正体:var・let・const の違い

それぞれの特徴を、直感的な言葉で整理してみましょう。

  • `const`(コンスト / 定数)
  • 一度入れたら中身を変えられない「厳重なタイムカプセル」です。
  • 基本的にすべての変数をこれで作りたい主役です。
  • `let`(レット / 変数)
  • 中身を何度でも書き換えられる「普通のダンボール箱」です。
  • スコアやカウンターなど、値が変化することが確実な場合のみ使います。
  • `var`(バ。過去の遺物)
  • ルールがガバガバでどこからでも中身を触られてしまう「鍵の壊れたロッカー」です。
  • 現代のモダンなJavaScriptでは絶対に使いません。

—

3. なぜ `var` を捨てて、`const` を優先すべきなのか?

初心者のうちは、「値が変わるかもしれないから、とりあえず `let` や `var` にしておこう」と考えがちです。しかし、これがバグの温床になります。

プログラミングの現場で最も恐ろしいのは、「意図しないところで勝手に変数の値が書き換えられてしまうこと」です。

次のコードを見てください。`var` がいかに危険かを物語っています。

// varを使った恐ろしい例
var playerName = “勇者”;

// 1000行くらいの長いコードの途中で、うっかり同じ名前で再宣言してしまったとする…
var playerName = “スライム”;

console.log(playerName); // 出力結果: “スライム” (名前が上書きされてしまった!)

`var` は、「同じ名前の変数を何度でも再宣言できてしまう」という致命的な仕様を持っています。これが何万行もある巨大なアプリだったら……? どこで名前が書き換わったのか分からず、デバッグ地獄に陥ります。

さらに、`var` は「スコープ(変数が有効な範囲)」のルールも緩く、意図せずグローバル空間(プログラム全体)を汚染してしまうバグを引き起こします。

`let` と `const` はエラーで守ってくれる

これが `let` や `const` だとどうなるでしょう?

// letやconstで同じ名前の変数を再宣言しようとすると…
let playerName = “勇者”;
let playerName = “スライム”; // 💥 SyntaxError: Identifier ‘playerName’ has already been declared

このように、現代のJavaScriptエンジン(V8など)は、同じスコープ内で同じ名前の変数を二重に作ろうとすると、即座にエラーを出して私たちのミスを未然に防いでくれます。 優しい番人が見張ってくれているようなものですね。

—

4. 実践:どう使い分ければいいの?(ベストプラクティス)

迷ったら、以下のシンプルな黄金律に従ってください。

1. 基本はすべて `const` で宣言する
2. 値の再代入(中身の入れ替え)が必要な場合だけ `let` に格下げする
3. `var` は一生使わない

具体的なコードで見てみましょう。

// 1. 設定値や固定のデータは const
const TAX_RATE = 0.1; // 消費税率は変わらない
const appTitle = “My Portfolio”;

// 2. カウンターや状態など、変化するものは let
let userScore = 0;
userScore = 10; // 点数が上がった!再代入はOK

// もし const の変数に再代入しようとすると…
const MAX_Level = 99;
// MAX_Level = 100; 💥 TypeError: Assignment to constant variable. (エラーになる)

「`const` なのに値が変わるの?」と混乱する初心者がいますが、`const` が縛っているのは「箱そのもの(参照先)」です。オブジェクトや配列の中身のプロパティを変更することは `const` でも可能です(これについては少し慣れてから調べればOKです!)。

—

5. まとめ

いかがだったでしょうか?

  • `var` はルールが緩すぎてバグの元凶になるため、もう使わない。
  • 変数は原則 `const`で宣言し、再代入が必要な場合のみ `let` を使う。
  • このルールを守るだけで、あなたのコードの安全性と読みやすさはプロのレベルにグッと近づきます。

ここをクリアすれば、JavaScriptの基本はバッチリマスターできたも同然です!
自信を持って、次のステップへ進んでいきましょう。あなたのコーディングライフを応援しています!

タイトルとURLをコピーしました