constを使った定数宣言とその特徴をわかりやすく解説

スポンサーリンク
スポンサーリンク

constの概要

定数宣言 JavaScript予約語

const

概要 constはJavaScriptで定数を宣言するためのキーワードです。一度値を割り当てると、その値を変更することはできません。

わかりやすく説明 constは「一度決めた値は変えたくない」というときに使います。

  • constで宣言された変数は再代入が禁止されます。
  • 値自体が変更されないのではなく、変数自体を再割り当てできないという特性を持ちます。
  • ブロックスコープを持ち、letと同様のスコープ管理が可能です。

constの基本的な使い方

以下は、constを使った基本的な例です。

// 基本的なconstの使用例
const PI = 3.14159;
console.log(PI); // 3.14159

// 再代入はエラー
// PI = 3.14; // エラー: "Assignment to constant variable."
  • constで宣言した変数に値を再割り当てしようとするとエラーになります。
  • 読み取り専用の値として利用する際に適しています。

オブジェクトや配列でのconstの挙動

constはオブジェクトや配列でも使用できますが、内部のプロパティや要素は変更可能です。

// オブジェクトの例
const person = { name: "Alice", age: 25 };

// プロパティの変更は可能
person.age = 26;
console.log(person.age); // 26

// 再代入はエラー
// person = { name: "Bob" }; // エラー: "Assignment to constant variable."

// 配列の例
const numbers = [1, 2, 3];
numbers.push(4); // 配列に要素を追加
console.log(numbers); // [1, 2, 3, 4]

// 再代入はエラー
// numbers = [5, 6, 7]; // エラー: "Assignment to constant variable."
  • constで宣言されたオブジェクトや配列は、内容の変更(ミューテーション)は可能です。
  • 再代入そのものは許可されません。

ブロックスコープと再宣言の禁止

constで宣言した変数はブロックスコープを持ち、同じスコープ内で再宣言できません。

// ブロックスコープの例
{
    const x = 10;
    console.log(x); // 10
}
// console.log(x); // エラー: x is not defined

// 再宣言の禁止
const y = 20;
// const y = 30; // エラー: "Identifier 'y' has already been declared"
  • constで宣言された変数はそのスコープ内でのみ有効です。
  • 同じ名前で変数を再宣言することはできません。

注意点

  • 初期化の必須: constは宣言時に必ず初期化しなければなりません。
  • 再代入の禁止: 再代入が必要な場合はletを使用してください。
  • 内容の変更: オブジェクトや配列の場合、内容(プロパティや要素)の変更が可能であることを理解しておきましょう。

よくある質問

Q: constletの違いは何ですか?
A: constは再代入が禁止されていますが、letは再代入可能です。どちらもブロックスコープを持ちます。
Q: オブジェクトや配列でconstを使用するのは安全ですか?
A: 再代入を防ぐ目的で使用するのは安全ですが、内容が変更可能であることを考慮する必要があります。不変性を保証するにはObject.freeze()を使用してください。
Q: constを使用しないほうがいい場合はありますか?
A: 再代入が必要な場面ではconstではなくletを使用するのが適切です。

まとめ

constは、JavaScriptで定数を宣言するためのキーワードです。再代入を防ぎ、不変の値を扱う際に非常に便利です。

  • 再代入が不要な変数にはconstを使用することで、バグを防止できます。
  • オブジェクトや配列では内容の変更が可能なため、特性を理解して使いましょう。
  • コードの保守性と予測可能性を向上させるために、constを適切に活用してください。