ホーム › エラー解決 › JavaScript › Assignment to constant variable
JavaScript ERROR

JavaScript Assignment to constant variable の原因と解決法

constで宣言した変数に再代入しようとすると発生するエラーです。値が変わる変数はletで宣言します。

このエラーメッセージ

Uncaught TypeError: Assignment to constant variable.

原因

❌ エラーになるコード

NG
const count = 0;
count = count + 1; // constは再代入できない
console.log(count);

✅ 修正したコード

OK
let count = 0;
count = count + 1;
console.log(count);

// 再代入しない値はconstのままでOK
const TAX_RATE = 1.1;
console.log(100 * TAX_RATE);
▶ 修正済みコードを実行エディタで開く
progoのJavaScript実行環境(インストール不要・登録不要)でその場で動作を確認できます。

解決のポイント

あとから値を入れ直す変数はletで宣言します。基本は「まずconstで書き、再代入が必要になったところだけlet」がモダンなスタイルです。なお、constのオブジェクトや配列でもobj.name = "x"やarr.push(1)のような中身の変更はエラーになりません。禁止されるのは変数自体への再代入だけです。

よくある質問

const配列にpushできるのはなぜ?
constが固定するのは「変数と値の結びつき」だけで、オブジェクトの中身は対象外だからです。中身も固定したい場合はObject.freeze()を使います。
varを使ってもいい?
varは巻き上げやスコープの問題があるため、新しいコードではconst/letの使用が推奨されます。