javascript operator
Less than or equal (<=)
The less than or equal (<=) operator returns true if the left operand is less than or equal to the right operand, and false otherwise.
Interactive exampleOpen the canonical MDN source to run this embedded demo.
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
Syntax
x <= y
Description
The operands are compared using the same algorithm as the Less than operator, with the operands swapped and the result negated. x <= y is generally equivalent to !(y < x), except for two cases where x <= y and x > y are both false:
- If one of the operands gets converted to a BigInt, while the other gets converted to a string that cannot be converted to a BigInt value (it throws a syntax error when passed to
BigInt()). - If one of the operands gets converted to
NaN. (For example, strings that cannot be converted to numbers, orundefined.)
In addition, x <= y coerces x to a primitive before y, while y < x coerces y to a primitive before x. Because coercion may have side effects, the order of the operands may matter.
x <= y is generally equivalent to x < y || x == y, except for a few cases:
- When one of
xoryisnull, and the other is something that’s notnulland becomes 0 when coerced to numeric (including0,0n,false,"","0",new Date(0), etc.):x <= yistrue, whilex < y || x == yisfalse. - When one of
xoryisundefined, and the other is one ofnullorundefined:x <= yisfalse, whilex == yistrue. - When
xandyare the same object that becomesNaNafter the first step of Less than (such asnew Date(NaN)):x <= yisfalse, whilex == yistrue. - When
xandyare different objects that become the same value after the first step of Less than:x <= yistrue, whilex < y || x == yisfalse.
Examples
String to string comparison
"a" <= "b"; // true
"a" <= "a"; // true
"a" <= "3"; // false
String to number comparison
"5" <= 3; // false
"3" <= 3; // true
"3" <= 5; // true
"hello" <= 5; // false
5 <= "hello"; // false
Number to Number comparison
5 <= 3; // false
3 <= 3; // true
3 <= 5; // true
Number to BigInt comparison
5n <= 3; // false
3 <= 3n; // true
3 <= 5n; // true
Comparing 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
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.