JavaScriptの比較演算子とは?==と===の違いもわかりやすく解説

JavaScript

JavaScriptで「もし〜なら」という処理(条件分岐)を作るときに欠かせないのが、「比較演算子」です。

「AとBは同じかな?」「AのほうがBより大きいかな?」といった判定を行い、その結果をtrue(正しい)かfalse(間違い)で教えてくれる記号のことです。

本記事では、基本となる比較演算子の種類から、特に間違いやすい==と===の決定的な違いまで、初心者向けに詳しく解説します。

比較演算子とは?結果は必ず「真偽値」になる

比較演算子とは、2つの値を比べて、その関係が正しいかどうかを判定する記号です。
演算子を使って比較した結果は、必ず以下のどちらかの値(真偽値)になります。

  • true:その条件が「正しい」とき
  • false:その条件が「間違い」のとき

例えば、5 > 3という式は正しいので結果はtrueになり、5 < 3は間違いなのでfalseになります。このtruefalseかによって、if文などの次の動きが決まるのです。

if文の基礎を復習したい方はこちら:

これだけは覚えたい!比較演算子の全種類

まずは、よく使われる比較演算子を整理しましょう。

等価演算子(同じかどうか)

  • ===(厳密等価演算子):左右が「等しい」ときにtrue
  • ==(等価演算子):左右が「(だいたい)等しい」ときにtrue
  • !==(厳密不等価演算子):左右が「等しくない」ときにtrue

関係演算子(大きさの比較)

  • >:左が右より大きい
  • <:左が右より小さい
  • >=:左が右以上(右と同じか、大きい)
  • <=:左が右以下(右と同じか、小さい)
演算子意味結果
===等しい(型も含む)10 === 10true
==等しい(型変換あり)10 == “10”true
!==等しくない10 !== 5true
>より大きい5 > 3true
<より小さい5 < 3false
>=以上5 >= 3true
<=以下5 <= 3false

【最重要】「==」と「===」の違いとは?

JavaScriptは「等しい」を表す記号が2種類ありますが、実務ではほぼ100%===(イコール3つ)を使います。その理由は、データの「型」をどう扱うかにあります。

==(等価演算子)は「型」を勝手に変換する

==は、データの種類(型)が違っても、JavaScriptが気を利かせて「だいたい同じならOK」と判定してしまいます。

console.log(10 == "10"); // true(数値と文字列だけど、中身が同じだからOK!)

一見便利に見えますが、これが予期せぬバグ(間違い)の原因になります。

===(厳密等価演算子)は「型」まで厳しくチェックする

対して===は、値だけでなく「型」も一致していないとtrueにしません。

console.log(10 === "10"); // false(数値と文字列なので、型が違うからダメ!)
console.log(10 === 10);   // true(数値同士で、値も同じなのでOK!)

現代のJavaScript開発では、より正確に判定を行うために、この===を使うのが鉄則となっています。

予期しない型変換によるバグを防ぐため、基本的には===を使うのが安全です。

大小比較(不等号)の注意

数値を比べる>=(以上)や<=(以下)を使う際、初心者が間違いやすいポイントが2つあります。

記号の順番

必ず > < を先に書き、 = を後に書きます。

  • 正解>= / <=
  • 間違い=>(これはアロー関数という別の意味になってしまいます)

「以上・以下」は「その数字も含む」

score >= 80と書いた場合、80点ちょうどでもtrueになります。
「80点より大きい(80点は含まない)」としたい場合は、score > 80を使いましょう。

比較演算子の実践的な使い方(if文との組み合わせ)

比較演算子は、単体で使うよりもif文などの条件式の中で真価を発揮します。

const myAge = 18;

if (myAge >= 18) {
  console.log("あなたは成人です。");
} else {
  console.log("あなたは未成年です。");
}

このように、「もしmyAge >= 18」がtrueなら上の処理を実行する」という流れになります。

まとめ

比較演算子は、プログラムが「自分で判断する」ための基準を作る大切な道具です。

  1. 比較演算子の結果は、必ずtruefalseになる。
  2. 「同じ」を判定するときは、必ず===(イコール3つ)を使う。
  3. ==(イコール2)は型を勝手に変えてしまうので、バグの元になる。
  4. >=<=は、イコールの位置を間違えないように注意する。

まずはブラウザのコンソールで、100===”100″5 > 3と打ち込んでみて、どのように結果が返ってくるか試してみてください。この「感覚」を掴むことが、複雑なプログラムを書くための第一歩です。

タイトルとURLをコピーしました