小于或等于 (<=)

**小于或等于 (<=)** 运算符如果左操作数小于或等于右操作数则返回 true,否则返回 false

试试看

语法

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 语言规范
# sec-relational-operators

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅