Less than (<)
The less than operator (<
) returns true
if the left operand is less than the right operand, and false
otherwise.
Syntax
x < y
Description
The operands are compared using the Abstract Relational Comparison algorithm, which is roughly summarised below:
- First, objects are converted to primitives using
Symbol.ToPrimitive
with thehint
parameter be'number'
. - If both values are strings, they are compared as strings, based on the values of the Unicode code points they contain.
- Otherwise JavaScript attempts to convert non-numeric types to numeric values:
- Boolean values
true
andfalse
are converted to 1 and 0 respectively. -
null
is converted to 0. -
undefined
is converted toNaN
. - Strings are converted based on the values they contain, and are converted as
NaN
if they do not contain numeric values.
- Boolean values
- If either value is
NaN
, the operator returnsfalse
. - Otherwise the values are compared as numeric values.
Examples
String to string comparison
console.log("a" < "b"); // true console.log("a" < "a"); // false console.log("a" < "3"); // false
String to number comparison
console.log("5" < 3); // false console.log("3" < 3); // false console.log("3" < 5); // true console.log("hello" < 5); // false console.log(5 < "hello"); // false console.log("5" < 3n); // false console.log("3" < 5n); // true
Number to Number comparison
console.log(5 < 3); // false console.log(3 < 3); // false console.log(3 < 5); // true
Number to BigInt comparison
console.log(5n < 3); // false console.log(3 < 5n); // true
Comparing Boolean, null, undefined, NaN
console.log(true < false); // false console.log(false < true); // true console.log(0 < true); // true console.log(true < 1); // false console.log(null < 0); // false console.log(null < 1); // true console.log(undefined < 3); // false console.log(3 < undefined); // false console.log(3 < NaN); // false console.log(NaN < 3); // false
Specifications
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
Less_than |
1 |
12 |
1 |
3 |
3 |
1 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
See also
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Less_than