定数
公開日: 2025/06/02
定数とは?プログラムの中の「変わらない値」を扱う基本知識
はじめに
プログラムの中で「変化しない値」を扱いたい場面は多くあります。たとえば「消費税率」「APIのエンドポイント」「成功を表すステータスコード」など、一度設定したら変更されない値。それを表現するのが「定数」です。この記事では、定数の意味、使い方、変数との違いについて解説します。
基本情報・概要
定数とは、宣言後に再代入できない固定された値を持つ識別子のことです。JavaScriptにおいては、
const
を使って定義します。定数はコードの可読性や保守性を高めるうえで重要です。
const TAX_RATE = 0.1; const API_ENDPOINT = "https://example.com/api";
上記のように、大文字とアンダースコアで定義するのが一般的な命名規則です。
比較・分類・特徴の表形式まとめ
項目 | 内容 |
---|---|
宣言キーワード | (JavaScript)、 (Java)、 (C#) |
再代入 | 不可(初期化後に変更できない) |
スコープ | や と同様、ブロックスコープ |
命名規則 | 通常はすべて大文字 + アンダースコア |
使用目的 | 値を固定したい場合、魔法数の排除 |
「定数=変更できない変数」ともいえます。再代入不可であることが最大の特徴です。
深掘り解説
const とオブジェクトの関係
const
で宣言されたオブジェクトや配列は、「再代入」ができないだけで、「中身の変更」は可能です。
const config = { api: "https://example.com" }; config.api = "https://new.example.com"; // OK config = {}; // NG(再代入)
このため、完全な不変性(イミュータブル)を保証するには
Object.freeze()
などを併用する必要があります。
定数とスコープ
const
はブロックスコープを持つため、関数の中や if 文の中に定義された定数はそのブロック内でしか参照できません。
if (true) { const mode = "debug"; } console.log(mode); // エラー
パフォーマンスと定数
定数を使うことで、予測可能な挙動が生まれ、最適化されやすくなるケースもあります。とくにコンパイラやJITエンジンは、変更されない値を前提に処理を簡略化できます。
応用・発展的な使い方
列挙定数のような使い方
定数をグループ化して「列挙型」のように使う方法も一般的です。
const STATUS = { SUCCESS: 200, NOT_FOUND: 404, SERVER_ERROR: 500 };
このようにしておけば、数値を直接扱うよりも意味が明確になります。
定数ファイルの分離
規模の大きなアプリでは、定数を別ファイルにまとめて管理することで、再利用性と保守性が向上します。
// constants.js export const APP_NAME = "MyApp"; export const MAX_USERS = 100;
よくある誤解と注意点
で宣言された配列やオブジェクトは「中身が変更不可」ではないconst
でも、参照先の変更が禁止されるだけで、内部のプロパティや要素は変更可能const
- 定数だからといってグローバルで使いすぎると依存度が高まりすぎる
まとめ
定数は「一度決めたら変わらない値」を安全に扱うための基本的な道具です。
const
を使うことで、コードの信頼性や予測可能性が向上します。使い方を正しく理解し、意味のある名前をつけ、必要に応じて定数グループや定数ファイルを設けることで、保守しやすく拡張性のあるコードを実現しましょう。