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 the hint 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 and false are converted to 1 and 0 respectively.
    • null is converted to 0.
    • undefined is converted to NaN.
    • Strings are converted based on the values they contain, and are converted as NaN if they do not contain numeric values.
  • If either value is NaN, the operator returns false.
  • 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