JSの定数とは何ですか?

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 の数学