JavaScriptのconstとstaticの違い

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におけるconststaticは、それぞれ異なる目的と使用法を持つキーワードです。

const

constは、定数を宣言するためのキーワードで、一度値が割り当てられるとその値は変更できません。しかし、constで宣言されたオブジェクトや配列のプロパティ自体は変更可能です。

static

一方、staticはクラスレベルのメソッドやプロパティを定義するためのキーワードで、クラスのインスタンスではなく、クラス自体に紐づきます。これにより、インスタンスを作成せずともこれらのメソッドやプロパティにアクセスでき、クラス全体で共有される情報を保持することが可能になります。

主な違い

したがって、conststaticの主な違いは以下の通りです:

  • constは変数の再代入を防ぎますが、staticはクラスレベルのメソッドやプロパティを定義します。
  • constは再代入不可能な変数を作成しますが、staticはインスタンス化せずにアクセスできるメソッドやプロパティを作成します。
  • constはプリミティブ値、オブジェクト、配列など、任意のデータ型に使用できますが、staticはクラス定義の一部としてのみ使用できます。

これらの違いを理解することで、JavaScriptのconststaticを適切に使用し、より効果的なコードを書くことができます。それぞれのキーワードが提供する機能と制約を理解することは、コードの意図を明確に表現し、バグを防ぐ上で重要です。

constとstaticの使用例

以下に、JavaScriptのconststaticの使用例を示します。

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!"

これらの例から、conststaticがそれぞれどのように使用され、どのような挙動を持つのかを理解することができます。これらのキーワードを適切に使用することで、JavaScriptのコードをより効果的に書くことができます。それぞれのキーワードが提供する機能と制約を理解することは、コードの意図を明確に表現し、バグを防ぐ上で重要です。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール