関係演算子

JavaScript で用意されている演算子の中で、 2 つの値の大きさを比較し true または flase を返す関係演算子の種類と使い方について解説します。

(Last modified: )

関係演算子の種類と使い方

関係演算子には次の 4 種類が用意されています。

<    より小さい
<=   以下
>    より大きい
>=   以上

関係演算子は 2 つの値を比較し true または false を返します。関係演算子は if 文や for 文などの条件式を記述するところで利用されることが多いです。次のサンプルをみてください。

let score = 78;

if (score > 70){
  console.log('合格です');
}else{
  console.log('不合格です');
}

>> 合格です

上記では条件式として score > 70 と記述されており、関係演算子のひとつである > が使用されています。関係演算子は演算子の前および後の値を比較し true か false を返します。今回は変数 score に格納されている値が 70 よりも大きいので条件式は true となり、 if 文のブロックの中の処理が実行されました。

それでは関係演算子のそれぞれの使い方について解説します。なおここでは比較する値がどちらも数値の場合で試しています。数値以外の値を比較する場合についてはこのあとで解説します。

より小さい(<)

より小さい(<)は演算子の前の値が後の値よりも小さかった場合に true を返します。

console.log(8 < 10);
>> true

console.log(8 < 8);
>> false

console.log(8 < 6);
>> false

以下(<=)

以下(<=)は演算子の前の値が後の値以下だった場合に true を返します。

console.log(8 <= 10);
>> true

console.log(8 <= 8);
>> true

console.log(8 <= 6);
>> false

より大きい(>)

より大きい(>)は演算子の前の値が後の値よりも大きかった場合に true を返します。

console.log(8 > 10);
>> false

console.log(8 > 8);
>> false

console.log(8 > 6);
>> true

以上(>=)

以上(>=)は演算子の前の値が後の値以上だった場合に true を返します。

console.log(8 >= 10);
>> false

console.log(8 >= 8);
>> true

console.log(8 >= 6);
>> true

数値以外の値の比較方法

関係演算子の対象となる値がどちらも数値だった場合には数値の大きさを単に比較しますが、そうでない場合には次のように比較が行われます。

文字列と文字列の比較

関係演算子の対象の値がどちらも文字列だった場合、文字列に含まれる文字の Unicode コードポイントの値を使って比較します。(コードポイントとは Unicode で登録されている文字に対して割り当てられている番号です)。

文字の Unicode コードポイントは String オブジェクトの codePointAt メソッドで取得することができます。次のサンプルでは 'a' と 'A' のコードポイントを取得し、関係演算子を使って 2 つの文字を比較しています。

console.log('a'.codePointAt(0));
>> 97

console.log('A'.codePointAt(0));
>> 65

console.log('A' > 'a');
>> false

'a' のコードポイントのほうが 'A' のコードポイントよりも大きいので 'A' > 'a' は false となりました。

文字列と文字列比較の場合は、例え文字列が数値を表す文字列だったとしても Unicode コードポイントで比較される点にご注意ください。

console.log('1'.codePointAt(0));
>> 49

console.log('3'.codePointAt(0));
>> 51

console.log('120' > '3');
>> false

このサンプルの場合、最初の文字の '1' と '3' のコードポイントが比較され、 '3' のコードポイントのほうが '1' のコードポイントよりも大きいので '120' > '3' は false となりました。

数値と文字列の比較

関係演算子の対象の値が数値と文字列だった場合、文字列を数値変換してから数値として比較します。文字列が数値に変換できなかった場合は NaN に変換され、関係演算子は常に false が返ります。

console.log('120' > 3);
>> true

数値と文字列の比較となるため、まず文字列の '120' が数値の 120 に変換された上で、数値の 3 と比較します。その結果 120 > 3 は true を返します。

文字列に数値以外の文字が含まれていた場合は NaN に変換されてから比較されるため、いずれも場合も false となります。

console.log('flower' > 3);
>> false

console.log('flower' <= 3);
>> false

数値と文字列以外の値の比較

オブジェクトはまずプリミティブ型の値に変換された上で比較が行われます。

数値と文字列以外の値については次の値に変換されてから比較されます。

true       1
false      0
null       0
undefined  NaN

次のサンプルをみてください。

console.log(true > false);
>> true
console.log(true > 0);
>> true
console.log(false > 0);
>> false
console.log(null >= 0);
>> true
console.log(null < 0);
>> false
console.log(undefined > 0);
>> false
console.log(undefined <= 0);
>> false

true や false は数値の 1 と 0 に変換された上で比較が行われます。 null は 0 に変換されます。 undefined はNaN に変換されるため、いずれも場合も false となります。

-- --

JavaScript で用意されている演算子の中で、 2 つの値の大きさを比較し true または flase を返す関係演算子の種類と使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。