小なりイコール演算子 (<=)
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…