constの概要
| 定数宣言 JavaScript予約語 | ||
|
const 概要 わかりやすく説明 |
||
|
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:
constとletの違いは何ですか? - A:
constは再代入が禁止されていますが、letは再代入可能です。どちらもブロックスコープを持ちます。 - Q: オブジェクトや配列で
constを使用するのは安全ですか? - A: 再代入を防ぐ目的で使用するのは安全ですが、内容が変更可能であることを考慮する必要があります。不変性を保証するには
Object.freeze()を使用してください。 - Q:
constを使用しないほうがいい場合はありますか? - A: 再代入が必要な場面では
constではなくletを使用するのが適切です。
まとめ
constは、JavaScriptで定数を宣言するためのキーワードです。再代入を防ぎ、不変の値を扱う際に非常に便利です。
- 再代入が不要な変数には
constを使用することで、バグを防止できます。 - オブジェクトや配列では内容の変更が可能なため、特性を理解して使いましょう。
- コードの保守性と予測可能性を向上させるために、
constを適切に活用してください。