Topiqlo ロゴ

定数

公開日: 2025/06/02

定数とは?プログラムの中の「変わらない値」を扱う基本知識

はじめに

プログラムの中で「変化しない値」を扱いたい場面は多くあります。たとえば「消費税率」「APIのエンドポイント」「成功を表すステータスコード」など、一度設定したら変更されない値。それを表現するのが「定数」です。この記事では、定数の意味、使い方、変数との違いについて解説します。

基本情報・概要

定数とは、宣言後に再代入できない固定された値を持つ識別子のことです。JavaScriptにおいては、

const
を使って定義します。定数はコードの可読性や保守性を高めるうえで重要です。

const TAX_RATE = 0.1;
const API_ENDPOINT = "https://example.com/api";

上記のように、大文字とアンダースコアで定義するのが一般的な命名規則です。

比較・分類・特徴の表形式まとめ

項目内容
宣言キーワード
const
(JavaScript)、
final
(Java)、
readonly
(C#)
再代入不可(初期化後に変更できない)
スコープ
let
var
と同様、ブロックスコープ
命名規則通常はすべて大文字 + アンダースコア
使用目的値を固定したい場合、魔法数の排除

「定数=変更できない変数」ともいえます。再代入不可であることが最大の特徴です。

深掘り解説

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
を使うことで、コードの信頼性や予測可能性が向上します。使い方を正しく理解し、意味のある名前をつけ、必要に応じて定数グループや定数ファイルを設けることで、保守しやすく拡張性のあるコードを実現しましょう。