小なりイコール演算子 (<=)
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
小なりイコール演算子 (<=
) は、左オペランドが右オペランド以下の場合は true
を返し、それ以外の場合は false
を返します。
試してみましょう
console.log(5 <= 3);
// 予想される結果: false
console.log(3 <= 3);
// 予想される結果: true
// Compare bigint to number
console.log(3n <= 5);
// 予想される結果: true
console.log("aa" <= "ab");
// 予想される結果: true
構文
js
x <= y;
解説
オペランドは、小なり演算子と同じアルゴリズムを使用して、オペランドを入れ替えて比較され、結果が反転されます。 x <= y
は通常 !(y < x)
と同等ですが、 x <= y
と x > y
の両方が false
となる 2 つの例外があります。
- 一方のオペランドが長整数に変換される一方、もう一方が長整数値に変換できない(
BigInt()
に渡すと構文エラーを発生する)文字列に変換される場合。 - オペランドの一方が
NaN
に変換される場合。(例えば、数値に変換できない文字列やundefined
など。)
さらに、x <= y
は x
を y
より前にプリミティブ型に型変換し、y < x
は y
を x
より前にプリミティブ型に型変換します。型変換には副作用を 持つ可能性が あるため、オペランドの順序が重要になる場合があります。
x <= y
は、一般的に x > y || x == y
と同等ですが、次のいくつかの例外があります。
x
またはy
のいずれかがnull
で、もう一方がnull
ではなく、数値型への変換によって 0 になる値(0
、0n
、false
、""
、"0"
、new Date(0)
など)の場合、x <= y
はtrue
と評価され、x < y || x == y
はfalse
と評価されます。x
またはy
の一方がundefined
で、もう一方がnull
またはundefined
である場合、x <= y
はfalse
となる一方、x == y
はtrue
となります。x
とy
が同じオブジェクトであり、小なり演算の最初の段階の後でNaN
になる場合(new Date(NaN)
など)、x <= y
はfalse
となる一方、x == y
はtrue
となります。x
とy
が異なるオブジェクトであり、小なり演算の最初の段階の後、同じ値になる場合、x <= y
はtrue
となる一方、x < y || x == y
はfalse
となります。
例
>文字列と文字列の比較
js
"a" <= "b"; // true
"a" <= "a"; // true
"a" <= "3"; // false
文字列と数値の比較
js
"5" <= 3; // false
"3" <= 3; // true
"3" <= 5; // true
"hello" <= 5; // false
5 <= "hello"; // false
数値と数値の比較
js
5 <= 3; // false
3 <= 3; // true
3 <= 5; // true
数値と長整数の比較
js
5n <= 3; // false
3 <= 3n; // true
3 <= 5n; // true
論理値、null、undefined、NaN の比較
js
true <= false; // false
true <= true; // true
false <= true; // true
true <= 0; // false
true <= 1; // true
null <= 0; // true
1 <= null; // false
undefined <= 3; // false
3 <= undefined; // false
3 <= NaN; // false
NaN <= 3; // false
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-relational-operators> |
ブラウザーの互換性
Loading…