小於或等於 (<=)

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

小於或等於 (<=) 運算子返回 true,如果左運算元小於或等於右運算元,否則返回 false

試一試

console.log(5 <= 3);
// Expected output: false

console.log(3 <= 3);
// Expected output: true

// Compare bigint to number
console.log(3n <= 5);
// Expected output: true

console.log("aa" <= "ab");
// Expected output: true

語法

js
x <= y

描述

運算元使用與小於運算子相同的演算法進行比較,但運算元交換並結果取反。x <= y 通常等價於 !(y < x),除了兩種情況,其中 x <= yx > y 都為 false

  • 如果其中一個運算元被轉換為 BigInt,而另一個被轉換為無法轉換為 BigInt 值的字串(當傳遞給BigInt()時會丟擲語法錯誤)。
  • 如果其中一個運算元被轉換為 NaN。(例如,無法轉換為數字的字串,或 undefined。)

此外,x <= yy 之前將 x 強制轉換為原始值,而 y < xx 之前將 y 強制轉換為原始值。因為強制轉換可能會產生副作用,所以運算元的順序可能很重要。

x <= y 通常等價於 x < y || x == y,除了少數情況

  • xy 中的一個為 null,而另一個不是 null 並且在強制轉換為數字時變為 0(包括 00nfalse"""0"new Date(0) 等):x <= ytrue,而 x < y || x == yfalse
  • xy 中的一個為 undefined,而另一個是 nullundefined 之一時:x <= yfalse,而 x == ytrue
  • xy 是同一個物件,但在小於運算子的第一步之後變為 NaN 時(例如 new Date(NaN)):x <= yfalse,而 x == ytrue
  • xy 是不同的物件,但在小於運算子的第一步之後變為相同的值時:x <= ytrue,而 x < y || x == yfalse

示例

字串與字串比較

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

數字與 BigInt 比較

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

規範

規範
ECMAScript® 2026 語言規範
# sec-relational-operators

瀏覽器相容性

另見