The less than operator (<
) returns true
if the left operand is less than the right operand, and false
otherwise.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
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
Specification |
ECMAScript (ECMA-262)The definition of 'Relational operators' in that specification. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Less than (a < b )
|
Chrome
Full support 1 |
Edge
Full support 12 |
Firefox
Full support 1 |
IE
Full support 3 |
Opera
Full support 3 |
Safari
Full support 1 |
WebView Android
Full support 1 |
Chrome Android
Full support 18 |
Firefox Android
Full support 4 |
Opera Android
Full support 10.1 |
Safari iOS
Full support 1 |
Samsung Internet Android
Full support 1.0 |
nodejs
Full support 0.1.100 |
Legend
- Full support
- Full support
See also
Less than (<) by Mozilla Contributors is licensed under CC-BY-SA 2.5.