JavaScript | 関係演算子(比較演算子)

JavaScript JavaScript
スポンサーリンク

JavaScriptの関係演算子をやさしく理解する

はじめての人に向けて、「値を比べる」ってどうやるの?を、例題つきで丁寧に説明します。ポイントは「比較すると、結果は true(正しい)か false(正しくない)のどちらかになる」です。


よく使う4つの比較記号

  • 小なり <: 左が右より小さいときに true
  • 以下 <=: 左が右以下(小さいか同じ)なら true
  • 大なり >: 左が右より大きいときに true
  • 以上 >=: 左が右以上(大きいか同じ)なら true
console.log(5 < 7);   // true
console.log(8 <= 8);  // true
console.log(10 > 12); // false
console.log(10 >= 7); // true
JavaScript

条件分岐での使いどころ

  • if文で合否や分岐を決めるときに使います。
let score = 78;
if (score >= 70) {
  console.log("合格");
} else {
  console.log("不合格");
}
JavaScript
  • for文でループ回数を制御するときにも使います。
for (let i = 0; i < 3; i++) {
  console.log("繰り返し:" + i);
}
// i が 0,1,2 の間だけ実行(i < 3 が条件)
JavaScript

数値どうしの比較はシンプル

  • Label: 結果は直感どおり
  • Label: 計算式の結果も比較できる
console.log(3 + 4 > 5);     // true(7 > 5)
console.log(10 / 2 <= 4);   // false(5 <= 4 は false)
JavaScript

文字列の比較は「辞書順」

  • Label: 文字列は「文字コード(辞書順)」で比べる
  • Label: 大文字と小文字は別物(一般に ‘A’ < ‘a’)
console.log("apple" < "banana"); // true(a は b より前)
console.log("Zoo" < "apple");    // true(Z は a より前の文字コード)
console.log("10" < "2");         // true(文字列同士は先頭文字で比べる:'1' < '2')
JavaScript
  • 直感とズレやすいポイントは「数字っぽい文字列でも、文字列同士なら数値としては比べない」こと。

数値と文字列を比べるときの自動変換

  • Label: 文字列が数値として読めるなら、数値に変換して比較
  • Label: 数値にできない文字列は NaN 扱いで比較は false になりやすい
console.log("120" > 3);      // true("120" → 120)
console.log("007" >= 7);     // true("007" → 7)
console.log("flower" > 3);   // false(数値にできず比較不可)
JavaScript
  • 初心者向けのコツ:迷ったら、先に Number() で明示的に変換してから比較すると安全。
console.log(Number("10") > Number("2")); // false(10 > 2 は true → あ、文字列比較の勘違い防止に役立つ)
JavaScript

true/false、null、undefined の比較のクセ

  • Label: true は 1、false は 0 として数値比較される
  • Label: null は 0 として比較されることがある
  • Label: undefined は数値変換できない(NaN)ため比較が false になりがち
console.log(true > false);   // true(1 > 0)
console.log(null >= 0);      // true(0 >= 0)
console.log(undefined > 0);  // false(NaN と 0 の比較は成立しない)
JavaScript
  • これらはバグのもと。型が混ざる比較は避けるか、明示的に型変換してから比較しましょう。

よくある落とし穴と回避策

  • Label: “10” と 2 の比較
console.log("10" > 2);  // true("10" が数値 10 に変換される)
console.log("10" < "2"); // true(文字列同士なら '1' < '2')
JavaScript
  • 回避策: 文字列か数値かを意識して、必要なら Number() で変換してから比較。
  • Label: 大文字と小文字の違い
console.log("a" > "Z"); // true(小文字は一般に大文字より後)
JavaScript
  • 回避策: 大小を気にしない比較をしたいなら、両方を同じケースに揃える。
console.log("Apple".toLowerCase() < "banana".toLowerCase()); // true
JavaScript

ミニ練習問題(答えは下)

問題 1

次の結果は?

  1. "8" > 7
  2. "8" < "7"
  3. true >= 1
  4. null < 1
  5. "cat" > "car"

問題 2

身長が 120cm 以上なら「乗れる」、それ未満なら「乗れない」と表示するコードを書いてください。
ヒント: height という変数を使う


ミニ練習問題の答え

問題 1 解答

  • 1) true(”8″ → 8)
  • 2) false(文字列同士:’8′ は ‘7’ より後)
  • 3) true(true → 1、1 >= 1)
  • 4) true(null → 0、0 < 1)
  • 5) true(”cat” と “car” の 3文字目:’t’ は ‘r’ より後)

問題 2 例解

let height = 118; // 例: ここを変えて試してみよう

if (height >= 120) {
  console.log("乗れる");
} else {
  console.log("乗れない");
}
JavaScript

まとめのコツ

  • 結果は必ず true/false
  • 文字列は辞書順、数値はそのまま
  • 型が混ざるときは Number() や toLowerCase() などで揃える
  • if文・for文での条件は「何を比べているか」を明確に
タイトルとURLをコピーしました