letとconstどっちを使えばいいの?

JavaScript 📅 2026年5月1日 👤 学習者さん

💬 質問

変数を宣言するとき、letconst のどちらを使えばいいのか迷います。使い分けのルールはありますか?

✅ 回答

シンプルなルールがあります:まず const を使い、後から値を変える必要があるときだけ let に変える

const と let の違い

  • const = 再代入できない(値を上書きできない)
  • let = 再代入できる(値を上書きできる)

コード例

// ✅ 値が変わらない → const
const name = '太郎';
const items = ['りんご', 'みかん'];
items.push('バナナ'); // OK(中身の変更は可能)

// ✅ 値が変わる → let
let count = 0;
count++; // OK

// ❌ const に再代入するとエラー
const score = 100;
score = 200; // TypeError!

よくある疑問:配列やオブジェクトは const でいいの?

はい!const は「変数の箱を別の箱に取り替えられない」だけです。箱の中身を変えるのはOKです。

const fruits = ['りんご'];
fruits.push('みかん'); // ✅ OK(中身を変更)
fruits = ['バナナ'];   // ❌ エラー(箱自体を取り替え)

var は使わないの?

var は古い書き方で、以下のような予期しない動作を起こすことがあります。

// var はブロックスコープを無視する
if (true) {
  var x = 10;
}
console.log(x); // 10(ブロックの外からアクセスできてしまう)

// let はブロックスコープが効く
if (true) {
  let y = 10;
}
console.log(y); // ReferenceError(正しくエラーになる)

また var は同じ変数名で何度も宣言できてしまうため、大きなプログラムでバグの原因になります。2015年以降は let / const を使うのが標準です。

実際のコードでの使い分け例

// ✅ 設定値・固定値 → const
const MAX_COUNT = 10;
const API_URL = 'https://api.example.com';

// ✅ DOM要素の参照 → const(参照先は変わらないので)
const button = document.getElementById('btn');

// ✅ ループカウンタ → let
for (let i = 0; i < 5; i++) {
  console.log(i);
}

// ✅ ユーザー入力で変わる値 → let
let score = 0;
button.addEventListener('click', () => {
  score++; // クリックのたびに値が変わる
});

まとめ:迷ったら const。カウンターやループ変数など「後から値を書き換えるもの」だけ let を使いましょう。var は書かない。これを守るだけでバグが減ります。

解決しなかった?

エンジニアに質問する →

⚠️ 関連するエラー

📖 関連する用語