カテゴリ: JavaScript 更新日: 2026/05/04

JavaScriptの比較演算子(==, ===, !=, !==)の違いを初心者向けにわかりやすく解説

JavaScriptの比較演算子(==, ===, !=, !==)の違いを整理しよう
JavaScriptの比較演算子(==, ===, !=, !==)の違いを整理しよう

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptで値を比べるときに=====ってどう違うんですか?」

先生

「それはとても大事な質問ですね。==は値だけを比べて、型は自動で変換してくれます。一方、===は値も型も完全に一致しているかどうかを比べます。」

生徒

「型って何ですか?」

先生

「型というのは、値の種類のことです。例えば数字か文字か、真偽値かを表します。JavaScriptでは型によって値の扱い方が変わります。」

生徒

「なるほど。それじゃ、!=!==はどう違うんですか?」

先生

!=は値が等しくないかを比べるときに使いますが、型変換をしてから比較します。!==は値も型も違う場合にのみtrueになります。」

1. ==(等価演算子)とは?

1. ==(等価演算子)とは?
1. ==(等価演算子)とは?

JavaScriptの==は、2つの値を比較して「値が同じかどうか」を判断する演算子です。ここでポイントになるのが「型の自動変換」です。数値と文字列を比べるときなどに、自動で型を変換してから比較します。


console.log(5 == "5"); // true
console.log(true == 1); // true
console.log(false == 0); // true

このように==は、見た目の値が同じであればtrueを返します。

2. ===(厳密等価演算子)とは?

2. ===(厳密等価演算子)とは?
2. ===(厳密等価演算子)とは?

===は「値と型の両方が同じかどうか」を比較する演算子です。型が違えば、値が同じでもfalseになります。こちらは初心者でもバグを防ぎやすいのでおすすめです。


console.log(5 === "5"); // false
console.log(true === 1); // false
console.log(5 === 5); // true

値と型が完全に一致する場合のみtrueが返ります。

3. !=(不等価演算子)とは?

3. !=(不等価演算子)とは?
3. !=(不等価演算子)とは?

!=は「値が等しくないか」を判定する演算子です。==と同じく型変換を行った上で比較するため、見た目の値が違うかどうかで結果が決まります。


console.log(5 != "6"); // true
console.log(5 != "5"); // false
console.log(true != 0); // true

値が同じに見える場合はfalse、違う場合はtrueになります。

4. !==(厳密不等価演算子)とは?

4. !==(厳密不等価演算子)とは?
4. !==(厳密不等価演算子)とは?

!==は「値または型が違う場合にtrue」を返す演算子です。!==を使うことで、型の違いによる意図しない比較ミスを防げます。


console.log(5 !== "5"); // true
console.log(5 !== 5);   // false
console.log(true !== 1); // true

型と値の両方を厳密にチェックしたいときに使います。

5. 比較演算子を使った実用例

5. 比較演算子を使った実用例
5. 比較演算子を使った実用例

例えば、ユーザーの入力値をチェックするときに=====を使えます。型を意識していないと、予期せぬ動作をすることがあります。


let input = "10";

if (input == 10) {
  console.log("入力は10です(型変換あり)");
}

if (input === 10) {
  console.log("入力は10です(型変換なし)");
} else {
  console.log("型が違うのでfalseになります");
}

この例では、==ではtrueになりますが、===ではfalseになります。

6. まとめて覚えたい比較演算子の特徴

6. まとめて覚えたい比較演算子の特徴
6. まとめて覚えたい比較演算子の特徴

初心者の方は以下の覚え方がおすすめです:

  • ==:値だけ比べる、型変換あり
  • ===:値も型も比べる、型変換なし
  • !=:値が違うか比べる、型変換あり
  • !==:値または型が違うか比べる、型変換なし

let a = 5;
let b = "5";

console.log(a == b);  // true
console.log(a === b); // false
console.log(a != b);  // false
console.log(a !== b); // true

これで、JavaScriptの比較演算子の違いを簡単に理解できます。

7. 比較演算子を使った条件分岐のポイント

7. 比較演算子を使った条件分岐のポイント
7. 比較演算子を使った条件分岐のポイント

条件分岐で比較演算子を使うときは、型変換が自動で起こる==!=よりも、型も意識する===!==を使う方が安全です。バグの原因になるのは、知らないうちに型変換が起こることだからです。


let score = "100";

if (score === 100) {
  console.log("スコアは100です");
} else {
  console.log("型が違うのでfalseです");
}

if (score == 100) {
  console.log("型変換されてtrueになります");
}

条件に応じて正しい比較演算子を選びましょう。

8. 初心者がやりがちな比較ミスと防止方法

8. 初心者がやりがちな比較ミスと防止方法
8. 初心者がやりがちな比較ミスと防止方法

初心者がよくやるミスは、==を使って型変換で意図しないtrueが返ることです。これを防ぐには、常に===!==を使う習慣をつけると安全です。


console.log(false == 0);  // true(型変換あり)
console.log(false === 0); // false(型が違う)

このように、型を意識して比較するだけで、予期しない結果を防ぐことができます。

まとめ

まとめ
まとめ

今回の記事では、JavaScriptの比較演算子である=====!=!==の違いについて詳しく解説しました。比較演算子は、値を比べる際に非常に重要な役割を持っており、特に型の違いを意識せずに==!=を使うと、思わぬバグの原因になります。===!==を使うことで、値だけでなく型まで厳密に比較できるため、初心者でも安全に条件分岐や値の比較が可能になります。また、条件分岐やユーザー入力の検証などの実用例を通して、どの比較演算子をどの場面で使うべきかを理解することができます。

比較演算子の基本を押さえることで、プログラムの正確性を高め、予期せぬ型変換によるエラーを防ぐことができます。さらに、JavaScriptの型の概念や型変換の仕組みを理解することで、より複雑な条件分岐やロジックの設計もスムーズに行えるようになります。以下に、まとめとして比較演算子の特徴をもう一度整理します。

  • ==:値だけを比較、型変換あり
  • ===:値と型の両方を比較、型変換なし
  • !=:値が異なるか比較、型変換あり
  • !==:値または型が異なるか比較、型変換なし
 let x = 10; let y = "10";
console.log(x == y); // true
console.log(x === y); // false
console.log(x != y); // false
console.log(x !== y); // true

このように、比較演算子の正しい使い分けを理解することが、JavaScriptでの条件分岐や値のチェックにおいて非常に重要です。初心者でも安心してコードを書けるように、まずは===!==を中心に使い、型の違いに敏感になることがポイントです。

また、比較演算子を正しく理解することは、JavaScriptにおける型の概念や暗黙の型変換、ブール値の取り扱いを学ぶ第一歩にもなります。これを身につけることで、if文やループ、関数の条件判定など、さまざまな場面で応用できるようになります。

先生と生徒の振り返り会話

生徒

「先生、=====の違いは、型変換をするかしないかってことですね?」

先生

「その通りです。==は型を自動で変換して比較しますが、===は型も値も一致しているかを厳密にチェックします。だから、初心者でも安全にコードを書きたいときは===を使うのがおすすめです。」

生徒

「なるほど。では、!=!==も同じ考え方で、値だけか値と型の両方を比べるかの違いですね?」

先生

「その通りです。!=は型変換ありで値の不一致を判定します。!==は型も含めて不一致かどうかを判定します。特に条件分岐でバグを防ぐためには、型も意識した!==の利用が安全です。」

生徒

「例えば、ユーザー入力が文字列で'10'だったときに、==だとtrueだけど、===だとfalseになるんですね。」

先生

「そうです。だから、ユーザー入力やAPIからのデータを扱うときは、型も意識して条件分岐を書きましょう。これで、予期せぬ型変換によるエラーを防ぐことができます。」

生徒

「わかりました。これからは===!==を中心に使って、型の違いにも気をつけます。」

先生

「その通りです。比較演算子を正しく理解すると、条件分岐や値のチェックが格段に安全になり、コードのバグも減らせます。今回学んだことを実際のコードで試してみると、理解がさらに深まりますよ。」

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptの関数に型をつける方法(引数・戻り値)を初心者向けに徹底解説!
New2
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
New3
TypeScript
TypeScriptでExpressのミドルウェアを型安全に定義する方法!バックエンド開発の初心者向け解説
New4
JavaScript
JavaScriptのfilterメソッドで条件に合う要素を抽出する方法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptでフォームの値を取得する方法を徹底解説!valueプロパティの使い道
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptでHTML5バリデーションAPIを使いこなす!初心者でもわかるフォーム入力チェック
No.3
Java&Spring記事人気No3
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptで要素を削除する方法(removeChild, removeなど)
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの現在日時を取得する方法を完全ガイド!初心者でもわかるDate.now()とnew Date()
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptの配列操作でよくあるエラーとその解決法まとめ