ジャバスクリプトのconstとは?

JavaScriptのconstとは?

JavaScriptのconstとは?

JavaScriptで変数を宣言する場合、varletconstの3つのキーワードを使用します。その中でも、constは「再代入できない変数」を定義するためのキーワードです。本記事では、constの特徴や注意点、使用方法について詳しく解説していきます。

constは定数ではない?

constは「constant(定数)」の略語であり、しばしば「定数を定義する」と説明されます。しかし、厳密に言うと、JavaScriptのconstは定数を定義するわけではありません。constで宣言した変数に格納される値自体は、後から変更される可能性があるためです。

混乱を避けるために、まずは「定数」と「再代入できない変数」の違いを明確にしておきましょう。

用語 説明
定数 一度定義した名前(変数名)が常に同じ値を示すもの。値自体を変更することはできません。
再代入できない変数 一度変数に値を代入すると、その後は同じ変数名に対して別の値を代入することができない変数。ただし、オブジェクトや配列の場合、要素の値を変更することは可能です。

JavaScriptのconstは、上記定義に基づくと、「再代入できない変数」を定義するためのキーワードと言えるでしょう。ただし、オブジェクトや配列をconstで宣言した場合、その要素の値は変更可能です。

constを使用するメリット

constを使用することで、以下のメリットがあります。

  • コードの意図が明確になり、可読性が向上する
  • 誤って値を変更してしまうことを防ぎ、バグの発生を抑える

constの使用方法

constを使って変数を宣言する基本的な構文は以下の通りです。


const 変数名 = 値;

例えば、円周率をconstで定義する場合は以下のようになります。


const PI = 3.141592;

上記コードでは、PIという変数に円周率の値を代入しています。一度constで宣言した変数には、その後別の値を代入することはできません。

注意点

  • constで宣言した変数には、宣言時に初期値を代入する必要があります。初期値を代入せずに宣言するとエラーが発生します。
  • オブジェクトや配列をconstで宣言した場合、要素の値は変更可能です。ただし、オブジェクトや配列自体を別のオブジェクトや配列に再代入することはできません。

constの使用例

以下は、constを使用したコード例です。


const TAX_RATE = 0.1;

function calculatePrice(price, quantity) {
  const subtotal = price * quantity;
  const tax = subtotal * TAX_RATE;
  const total = subtotal + tax;
  return total;
}

const price = 1000;
const quantity = 3;
const totalPrice = calculatePrice(price, quantity);

console.log(totalPrice); // 3300

上記コードでは、消費税率をTAX_RATEという定数として定義しています。calculatePrice関数内では、小計、消費税額、合計金額を計算し、合計金額を返しています。この際、constを使用することで、誤って値を変更してしまうことを防いでいます。

まとめ

constはJavaScriptで再代入できない変数を定義するためのキーワードです。constを使用することで、コードの可読性や保守性を向上させることができます。ただし、オブジェクトや配列をconstで宣言した場合、要素の値は変更可能であることに注意が必要です。

参考文献

Q&A

Q1: constletの違いは何ですか?

A1: constで宣言した変数は再代入できませんが、letで宣言した変数は再代入可能です。constは値が変更されないことが分かっている場合に、letは値が変更される可能性がある場合に使用します。

Q2: constで宣言した変数の値を変更するにはどうすればよいですか?

A2: constで宣言した変数の値は変更できません。値を変更したい場合は、letで変数を宣言する必要があります。

Q3: オブジェクトや配列をconstで宣言した場合、要素の値を変更することはできますか?

A3: はい、オブジェクトや配列をconstで宣言した場合でも、要素の値は変更可能です。ただし、オブジェクトや配列自体を別のオブジェクトや配列に再代入することはできません。

その他の参考記事:JavaScriptのletとconst