【ていすう】

定数 とは?

最終更新:
💡 名前の差し替えを防ぐ「固定ラベル」

値を再代入できない名前や、変更しない値を表す仕組み。JavaScriptのconstは再代入を禁止するが、オブジェクトや配列の中身まで不変にするものではない。

📌 このページのポイント
JavaScript:再代入を防ぐ const let:再代入OK const:再代入不可 let count = 1; const LIMIT = 3; count = 2; ✓ LIMIT = 4; ✕ const items = [1]; 1 2 items.push(2) はOK 名前への再代入と、中身の変更は別
constはオブジェクト全体の不変性を保証しません。配列の中身も変更できます。
ひよこ ひよこ
変数があるのに定数って必要なの?
ペンギン先生 ペンギン先生
処理中に固定して使う設定値などに名前を付けておくと便利だよ。JavaScriptではconstで宣言すれば、その名前へ別の値を再代入しようとしたときにエラーになるんだ
ひよこ ひよこ
constで作った配列の中身を変えられるのはなぜ?
ペンギン先生 ペンギン先生
constが禁止するのは、名前が指す値の差し替えだよ。const items = [1]なら、items.push(2)で中身を追加できるけれど、items = [3]という再代入はできないんだ
ひよこ ひよこ
中身も変更させたくないときは?
ペンギン先生 ペンギン先生
Object.freeze()で、そのオブジェクト自身のプロパティの追加・削除・書き換えを防げるよ。ただし浅いフリーズなので、内部にある別のオブジェクトまでは自動で凍結しないんだ
ひよこ ひよこ
定数の名前に決まりはある?
ペンギン先生 ペンギン先生
大文字とアンダースコアのMAX_RETRY_COUNTなどは命名の慣習だよ。constという構文が名前の大文字小文字を決めるわけではないので、チームの規約に合わせようね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「定数」って出てきたら「固定して扱う値や名前」と思えばだいたいOK!JavaScriptのconstは再代入を防ぐ仕組みだよ。
📖 おまけ:英語の意味
「constant」 = 一定の、不変の
💬 英語で「一定の」という意味だよ。プログラムでは固定して扱う値や名前を表すんだ

参考資料

← 用語集にもどる