比較演算子 (JavaScript)

比較演算子は、2 つの値を比較して、論理 (ブール) 結果を生成します。

次の表で、各比較演算子について説明します。

演算子 説明
expr1 == expr2 等しい。expr1expr2 が等しい場合に true を返します。オペランドの型が異なる場合は、型変換が発生します。
expr1 != expr2 等しくない。expr1expr2 が等しくない場合に true を返します。必要に応じて型変換が発生します。
expr1 === expr2 厳密に等しい。expr1expr2 が同じ型で、かつ等しい場合に、true を返します。
expr1 !== expr2 厳密には等しくない。expr1expr2 は型が異なるか、同じ型であるが等しくない場合に、true を返します。
expr1 > expr2 より大きい。expr1expr2 より大きい場合に true を返します。必要に応じて型変換が発生します。
expr1 >= expr2 より大きいか等しい。expr1expr2 より大きいか等しい場合に true を返します。必要に応じて型変換が発生します。
expr1 < expr2 より小さい。expr1expr2 より小さい場合に true を返します。必要に応じて型変換が発生します。
expr1 <= expr2 より小さいか等しい。expr1expr2 より小さいか等しい場合に true を返します。必要に応じて型変換が発生します。

使用法

オペランドの比較は、以下のようにして行われます。
型変換は、以下のようにして行われます。
  • 数値の比較では、可能な場合は、ストリングが数値 (Number 型の値) に変換されます。変換結果が NaN の場合、比較は false です。
  • ブール値の比較では、数値 0 (正または負の整数または浮動小数点数) は false で、それ以外のすべての数値は true です。また、空ストリングは false で、それ以外のすべてのストリングは true です。null は false、undefined は false です。
  • 数値とストリングの比較では、オブジェクトは、オブジェクトの valueOf メソッドと toString メソッドを使用して、数値またはストリングに変換されます。変換が失敗した場合は、実行時エラーが発生します。

この例では、数値に対してさまざまな比較演算子を実行します。
function p(stuff) {
	print("<<<" + stuff + ">>>");
}

var n = 9;

p("n == 9: " + (n == 9)); // true
p("n != 9 : " + (n != 9)); // false
p("n == ¥"9¥" : " + (n == "9")); // true
p("n != ¥"9¥" : " + (n != "9")); // false
p("n === ¥"9¥" : " + (n === "9")); // false
p("n !== ¥"9¥" : " + (n !== "9")); // true
p("n > 9: " + (n > 9)); // false
p("n >= 9: " + (n >= 9)); // true
p("n < 9: " + (n < 9)); // false
p("n <= 9: " + (n <= 9)); // true
p("n > ¥"9¥" : " + (n > "9")); // false
p("n >= ¥"9¥" : " + (n >= "9")); // true
p("n < ¥"9¥" : " + (n < "9")); // false
p("n <= ¥"9¥" : " + (n <= "9")); // true