constとは何か
JavaScriptにおけるconst
は、定数を宣言するためのキーワードです。const
を使用して変数を宣言すると、その変数は再代入できません。つまり、一度const
で宣言した変数に値を割り当てると、その後その値を変更することはできません。
const myConst = "Hello, World!";
myConst = "Goodbye, World!"; // TypeError: Assignment to constant variable.
上記のコードでは、myConst
という名前の定数を宣言し、その値を”Hello, World!”に設定しています。その後、その値を”Goodbye, World!”に変更しようとすると、TypeErrorが発生します。
ただし、const
で宣言されたオブジェクトや配列のプロパティは変更可能です。これはconst
が変数自体の再代入を防ぐだけで、その値のミュータビリティ(変更可能性)を制御しないためです。
const myObj = { greeting: "Hello, World!" };
myObj.greeting = "Goodbye, World!"; // This is allowed
console.log(myObj.greeting); // Outputs: "Goodbye, World!"
このように、const
は変数の再代入を防ぐ一方で、オブジェクトや配列のプロパティの変更を許可します。これはJavaScriptのconst
の重要な特性であり、開発者がコードの意図を明確に表現するのに役立ちます。
staticとは何か
JavaScriptにおけるstatic
は、クラスレベルのメソッドやプロパティを定義するためのキーワードです。static
キーワードを使用して定義されたメソッドやプロパティは、そのクラスのインスタンスではなく、クラス自体に紐づきます。
以下に、static
メソッドの使用例を示します。
class MyClass {
static myStaticMethod() {
return 'Hello, World!';
}
}
console.log(MyClass.myStaticMethod()); // Outputs: "Hello, World!"
上記のコードでは、MyClass
というクラスにmyStaticMethod
というstatic
メソッドを定義しています。このメソッドは、MyClass
のインスタンスを作成せずとも、直接クラスから呼び出すことができます。
また、static
プロパティも同様に、クラスレベルで定義され、クラスのインスタンスではなく、クラス自体に紐づきます。
class MyClass {
static myStaticProperty = 'Hello, World!';
}
console.log(MyClass.myStaticProperty); // Outputs: "Hello, World!"
このように、static
キーワードは、クラスレベルのメソッドやプロパティを定義するために使用されます。これにより、インスタンスを作成せずともこれらのメソッドやプロパティにアクセスでき、クラス全体で共有される情報を保持することが可能になります。これはJavaScriptのstatic
の重要な特性であり、開発者がコードの意図を明確に表現するのに役立ちます。
constとstaticの違い
JavaScriptにおけるconst
とstatic
は、それぞれ異なる目的と使用法を持つキーワードです。
const
const
は、定数を宣言するためのキーワードで、一度値が割り当てられるとその値は変更できません。しかし、const
で宣言されたオブジェクトや配列のプロパティ自体は変更可能です。
static
一方、static
はクラスレベルのメソッドやプロパティを定義するためのキーワードで、クラスのインスタンスではなく、クラス自体に紐づきます。これにより、インスタンスを作成せずともこれらのメソッドやプロパティにアクセスでき、クラス全体で共有される情報を保持することが可能になります。
主な違い
したがって、const
とstatic
の主な違いは以下の通りです:
const
は変数の再代入を防ぎますが、static
はクラスレベルのメソッドやプロパティを定義します。const
は再代入不可能な変数を作成しますが、static
はインスタンス化せずにアクセスできるメソッドやプロパティを作成します。const
はプリミティブ値、オブジェクト、配列など、任意のデータ型に使用できますが、static
はクラス定義の一部としてのみ使用できます。
これらの違いを理解することで、JavaScriptのconst
とstatic
を適切に使用し、より効果的なコードを書くことができます。それぞれのキーワードが提供する機能と制約を理解することは、コードの意図を明確に表現し、バグを防ぐ上で重要です。
constとstaticの使用例
以下に、JavaScriptのconst
とstatic
の使用例を示します。
constの使用例
// constを使用して定数を宣言
const PI = 3.14159;
console.log(PI); // Outputs: 3.14159
// constで宣言した変数は再代入できない
PI = 3.14; // TypeError: Assignment to constant variable.
// しかし、constで宣言したオブジェクトのプロパティは変更可能
const myObj = { greeting: "Hello, World!" };
myObj.greeting = "Goodbye, World!"; // This is allowed
console.log(myObj.greeting); // Outputs: "Goodbye, World!"
staticの使用例
class MyClass {
// staticメソッドの定義
static myStaticMethod() {
return 'Hello, World!';
}
// staticプロパティの定義
static myStaticProperty = 'Hello, JavaScript!';
}
// staticメソッドの呼び出し
console.log(MyClass.myStaticMethod()); // Outputs: "Hello, World!"
// staticプロパティのアクセス
console.log(MyClass.myStaticProperty); // Outputs: "Hello, JavaScript!"
これらの例から、const
とstatic
がそれぞれどのように使用され、どのような挙動を持つのかを理解することができます。これらのキーワードを適切に使用することで、JavaScriptのコードをより効果的に書くことができます。それぞれのキーワードが提供する機能と制約を理解することは、コードの意図を明確に表現し、バグを防ぐ上で重要です。