JavaScript 関係演算子 練習問題(10問)
では、さきほどの関係演算子の解説をもとに、初心者向け「練習問題10問+解答・詳解」セットを紹介します
テーマは「比較演算子の理解」「型変換のしくみ」「予想外の比較結果を見抜く力」です。
💡出題ルール
- すべて
trueまたはfalseになります。 - 各問題のあとに「自分の予想」を考えてから答えを確認してみましょう。
- ただ覚えるよりも、「なぜそうなるのか」を理解するのが目的です!
問題1
console.log(5 < 10);
JavaScript解答: true
解説:
5 は 10 より小さいので、シンプルに true。
基本的な数値比較です。
問題2
console.log(7 >= 7);
JavaScript解答: true
解説:
「以上(>=)」なので、等しい場合も true。7 == 7 が成り立つためです。
問題3
console.log('120' > '3');
JavaScript解答: false
解説:
両方が文字列なので、**数値としてではなく「文字の順番」で比較」**されます。
‘1’(コードポイント65)と ‘3’(コードポイント67)を比べるため、'1' < '3' → false。
つまり「120」ではなく「最初の文字の比較」です。
問題4
console.log('120' > 3);
JavaScript解答: true
解説:
片方が文字列、もう片方が数値なので、
文字列 '120' は数値 120 に自動変換されます。120 > 3 → true。
問題5
console.log('5' < '12');
JavaScript解答: false
解説:
文字列同士の比較。
1文字目 ‘5’ と ‘1’ を比較 → ‘5’ は ‘1’ より大きいので false。
👉 数値の大小ではなく「文字の並び順」で比べている。
問題6
console.log(null >= 0);
JavaScript解答: true
解説:
比較演算では null が数値 0 に変換されるため、0 >= 0 → true。
ただし、null > 0 は false になる点に注意!(微妙に違う)
問題7
console.log(undefined > 0);
JavaScript解答: false
解説:undefined は数値に変換できず NaN(数値でない値)になります。NaN との比較は常に false。
👉 これも初心者が混乱しやすいポイント!
問題8
console.log(0 == false);
JavaScript解答: true
解説:== は型変換を行う「ゆるい比較」。false → 0 に変換されて、0 == 0 → true。
(=== を使えば false になります)
問題9
console.log([1,2] == '1,2');
JavaScript解答: true
解説:
配列 [1,2] は比較時に自動で "1,2" という文字列に変換されます。
つまり "1,2" == "1,2" → true。
ただし、こうした挙動に頼るコードはバグのもと!
問題10
console.log(NaN == NaN);
JavaScript解答: false
解説:NaN(Not-a-Number)は「どんな値とも等しくない」特殊な数。
自分自身とも等しくないため、false。NaN を調べたいときは Number.isNaN() を使いましょう。
Number.isNaN(NaN); // true
JavaScriptまとめ:比較のポイント整理表
| パターン | 比較対象 | 自動変換の有無 | 結果の傾向 |
|---|---|---|---|
| 数値 vs 数値 | なし | なし | 直感どおり |
| 文字列 vs 文字列 | コード順 | なし | 数字比較ではない |
| 数値 vs 文字列 | 文字列→数値 | あり | 直感どおりになることが多い |
| null | 0 として扱われる(時々) | あり | 微妙な差あり(>= と > で違う) |
| undefined | NaN になる | あり | 常に false |
| true / false | 1 / 0 に変換 | あり | 0 == false → true |
| NaN | 比較不能 | あり | すべて false |
| オブジェクト | 参照を比較 | なし | 内容が同じでも false |
追加チャレンジ問題(応用)
自信がついてきたら挑戦!
console.log('2' + 2 > '22'); // 問1
console.log([] == false); // 問2
console.log(null == undefined); // 問3
console.log(null === undefined); // 問4
See the Pen JavaScript Relational Operators Quiz by MONO365 -Color your days- (@monoqlo365) on CodePen.
See the Pen JavaScript Relational Operators Quiz #2 by MONO365 -Color your days- (@monoqlo365) on CodePen.
