Less than or equal (<=)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Toán tử less than or equal (<=) trả về true nếu toán hạng bên trái nhỏ hơn hoặc bằng toán hạng bên phải, và false trong các trường hợp còn lại.

Try it

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

Cú pháp

js
x <= y

Mô tả

Các toán hạng được so sánh bằng cùng thuật toán như toán tử Less than, với các toán hạng được hoán đổi và kết quả bị phủ định. x <= y nhìn chung tương đương với !(y < x), ngoại trừ hai trường hợp mà cả x <= yx > y đều là false:

  • Nếu một trong các toán hạng được chuyển đổi thành BigInt, trong khi toán hạng kia được chuyển đổi thành một string không thể chuyển đổi thành giá trị BigInt (nó ném ra lỗi cú pháp khi truyền vào BigInt()).
  • Nếu một trong các toán hạng được chuyển đổi thành NaN. (Ví dụ: string không thể chuyển đổi thành số, hoặc undefined.)

Ngoài ra, x <= y ép kiểu x sang kiểu primitive trước y, trong khi y < x ép kiểu y sang kiểu primitive trước x. Vì việc ép kiểu có thể có tác dụng phụ, thứ tự của các toán hạng có thể quan trọng.

x <= y nhìn chung tương đương với x < y || x == y, ngoại trừ một vài trường hợp:

  • Khi một trong x hoặc ynull, và giá trị kia là thứ gì đó không phải null và trở thành 0 khi ép kiểu sang numeric (bao gồm 0, 0n, false, "", "0", new Date(0), v.v.): x <= ytrue, trong khi x < y || x == yfalse.
  • Khi một trong x hoặc yundefined, và giá trị kia là một trong null hoặc undefined: x <= yfalse, trong khi x == ytrue.
  • Khi xy là cùng một object trở thành NaN sau bước đầu tiên của Less than (chẳng hạn như new Date(NaN)): x <= yfalse, trong khi x == ytrue.
  • Khi xy là các object khác nhau trở thành cùng một giá trị sau bước đầu tiên của Less than: x <= ytrue, trong khi x < y || x == yfalse.

Ví dụ

So sánh string với string

js
"a" <= "b"; // true
"a" <= "a"; // true
"a" <= "3"; // false

So sánh string với number

js
"5" <= 3; // false
"3" <= 3; // true
"3" <= 5; // true

"hello" <= 5; // false
5 <= "hello"; // false

So sánh number với number

js
5 <= 3; // false
3 <= 3; // true
3 <= 5; // true

So sánh number với BigInt

js
5n <= 3; // false
3 <= 3n; // true
3 <= 5n; // true

So sánh Boolean, 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

Thông số kỹ thuật

Specification
ECMAScript® 2027 Language Specification
# sec-relational-operators

Khả năng tương thích trình duyệt

Xem thêm