JavaScript における =, ==, === の違い

JavaScript の基礎

日付:2025年2月18日

JavaScript の =, ==, === の違いと、それぞれの使い分けについて詳しく解説します。特に == と === の違いを理解することが重要です。

目 次

はじめに

JavaScript では、変数に値を代入したり、値を比較する際に =, ==, === という異なる演算子が使われます。

これらの演算子は見た目が似ていますが、動作が大きく異なる ため、間違った使い方をするとバグの原因になります。

本記事では、それぞれの演算子の意味と適切な使い方について詳しく解説します。

1. =(代入演算子)

=変数に値を代入する ための演算子です。

JAVASCRIPT
let x = 10; // x に 10 を代入 let text = "Hello"; // text に "Hello" を代入

ポイント

  • =値を変数に代入する のに使う。
  • x = 10 の場合、x10 という値が設定される。
  • 比較演算子ではない ため、条件式には使用できない。

2. ==(抽象的な等価演算子 / ルーズイコール)

==値が等しいかどうかを比較する 演算子です。
ただし、型が異なる場合には 暗黙的な型変換(型強制) が行われます。

JAVASCRIPT
console.log(5 == "5"); // true (型が異なっても値が等しいと判定) console.log(0 == false); // true (0 は false と等価)

ポイント

  • ==型が異なっても比較を行い、必要に応じて型変換を行う
  • 直感に反する結果を引き起こすことがある。

3. ===(厳密等価演算子 / ストリクトイコール)

===値と型の両方が等しいかどうかを比較する 演算子です。

JAVASCRIPT
console.log(5 === "5"); // false (型が異なるため等しくない) console.log(0 === false); // false (型が異なるため等しくない) console.log(10 === 10); // true (値も型も等しい)

ポイント

  • ===型変換を行わず、厳密に値と型が等しいかを判定する
  • 型が異なる場合は false を返す。

4. == と === の違いまとめ

比較項目=====
型変換ありなし
値だけ比較可能不可能(型もチェック)
5 == "5"true5 === "5"false
推奨用途型が異なる場合に曖昧な比較を許容厳密な比較が必要な場合(推奨)

5. まとめ

JavaScript の演算子の使い分け

  • =値を変数に代入する(比較には使えない)。
  • ==値が等しいか比較するが、型変換を行うためバグの原因になりやすい
  • ===値と型の両方を比較する(推奨)

JavaScript では、意図しない型変換によるバグを防ぐために、基本的に === を使うことを推奨 します。