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
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 <= y và x > 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ặcundefined.)
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
xhoặcylànull, và giá trị kia là thứ gì đó không phảinullvà trở thành 0 khi ép kiểu sang numeric (bao gồm0,0n,false,"","0",new Date(0), v.v.):x <= ylàtrue, trong khix < y || x == ylàfalse. - Khi một trong
xhoặcylàundefined, và giá trị kia là một trongnullhoặcundefined:x <= ylàfalse, trong khix == ylàtrue. - Khi
xvàylà cùng một object trở thànhNaNsau bước đầu tiên của Less than (chẳng hạn nhưnew Date(NaN)):x <= ylàfalse, trong khix == ylàtrue. - Khi
xvàylà 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 <= ylàtrue, trong khix < y || x == ylàfalse.
Ví dụ
>So sánh string với string
"a" <= "b"; // true
"a" <= "a"; // true
"a" <= "3"; // false
So sánh string với number
"5" <= 3; // false
"3" <= 3; // true
"3" <= 5; // true
"hello" <= 5; // false
5 <= "hello"; // false
So sánh number với number
5 <= 3; // false
3 <= 3; // true
3 <= 5; // true
So sánh number với BigInt
5n <= 3; // false
3 <= 3n; // true
3 <= 5n; // true
So sánh Boolean, null, undefined, NaN
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> |