JavaScriptにおける定数とは?
プログラミングにおいて、値が変化しない要素を扱うことは非常に一般的です。例えば、円周率、重力加速度、特定の文字列など、一度定義したら変更する必要がない値は数多く存在します。このような値を扱うために、多くのプログラミング言語では「定数」という概念が用意されています。
定数の定義と特徴
定数とは、一度定義した名前(変数名)が常に同じ値を示すものです。変数とは異なり、一度値を代入すると、その後はプログラムの実行中に値を変更することができません。そのため、定数はプログラムの安全性を高め、予期せぬエラーを防ぐために役立ちます。
JavaScriptにおける定数:const宣言
JavaScriptでは、 `const` 宣言を用いることで、定数に近い変数を定義することができます。 `const` で宣言された変数は、一度値を代入すると、その後は再代入することができません。ただし、JavaScriptの `const` は厳密な意味での定数ではなく、オブジェクトや配列の要素を変更することは可能です。
const宣言の構文
const 変数名 = 値;
例えば、円周率を定数として定義する場合は、以下のようになります。
const PI = 3.141592653589793;
const宣言のメリット
- プログラムの可読性が向上する
- 意図しない値の変更を防ぎ、バグの発生を抑制する
- コードの保守性を高める
constとlet、varの違い
JavaScriptには、変数を宣言するためのキーワードとして、 `const` の他に `let` と `var` が存在します。それぞれの違いは以下の表の通りです。
キーワード | 再代入 | スコープ | 導入時期 |
---|---|---|---|
const | 不可 | ブロックレベル | ES6 (2015) |
let | 可能 | ブロックレベル | ES6 (2015) |
var | 可能 | 関数レベル | ES5 (以前) |
const宣言の使用例
const TAX_RATE = 0.1; // 消費税率
function calculateTotalPrice(price, quantity) {
const subtotal = price * quantity; // 小計
const tax = subtotal * TAX_RATE; // 消費税額
const totalPrice = subtotal + tax; // 合計金額
return totalPrice;
}
const itemPrice = 1000; // 商品価格
const itemQuantity = 2; // 個数
const totalPrice = calculateTotalPrice(itemPrice, itemQuantity);
console.log(totalPrice); // 1100
注意点
- `const` で宣言した変数にも、オブジェクトや配列を代入することはできます。ただし、オブジェクトや配列の中身を変更することは可能です。
- `const` で宣言した変数に、後から値を代入することはできません。初期値を設定せずに宣言することもできません。
参考資料
よくある質問
Q1: `const` 宣言と `let` 宣言の使い分け方を教えてください。
A1: 基本的に、値を変更する必要がない場合は `const` を、値を変更する必要がある場合は `let` を使用します。 `const` を使用することで、プログラムの可読性や安全性を高めることができます。
Q2: `const` で宣言した変数に、オブジェクトを代入した後に、オブジェクトのプロパティを変更することはできますか?
A2: はい、可能です。 `const` はオブジェクトや配列自体への再代入を防ぎますが、その中身 (プロパティや要素) の変更までは制限しません。
Q3: `const` は古いブラウザでは使用できないと聞いたのですが、本当ですか?
A3: はい、 `const` はES6 (2015) で導入された機能であるため、古いブラウザではサポートされていません。古いブラウザをサポートする必要がある場合は、 `var` を使用するか、Babelなどのトランスパイラを使ってES5に変換する必要があります。
その他の参考記事:JavaScript の数学