, null, undefined, NaN

js

    
    
    true < false; // false
    false < true; // true
    
    0 < true; // true
    true < 1; // false
    
    null < 0; // false
    null < 1; // true
    
    undefined < 3; // false
    3 < undefined; // false
    
    3 < NaN; // false
    NaN < 3; // false
    

###  Comparison with side effects

Comparisons always coerce their operands to primitives. This means the same
object may end up having different values within one comparison expression.
For example, you may have two values that are both greater than and less than
the other.

js

    
    
    class Mystery {
      static #coercionCount = -1;
      valueOf() {
        Mystery.#coercionCount++;
        // The left operand is coerced first, so this will return 0
        // Then it returns 1 for the right operand
        return Mystery.#coercionCount % 2;
      }
    }
    
    const l = new Mystery();
    const r = new Mystery();
    console.log(l < r && r < l);
    // true
    

**Warning:** This can be a source of confusion. If your objects provide custom
primitive conversion logic, make sure it is _idempotent_ : multiple coercions
should return the same value.

##  Specifications

Specification  
---  
[ ECMAScript Language Specification  
#  sec-relational-operators  ](https://tc39.es/ecma262/multipage/ecmascript-
language-expressions.html#sec-relational-operators)  
  
##  Browser compatibility

BCD tables only load in the browser  with JavaScript enabled. Enable
JavaScript to view data.

##  See also

  * [ Greater than ( ` > ` ) ](/en-US/docs/Web/JavaScript/Reference/Operators/Greater_than)
  * [ Greater than or equal ( ` >= ` ) ](/en-US/docs/Web/JavaScript/Reference/Operators/Greater_than_or_equal)
  * [ Less than or equal ( ` <= ` ) ](/en-US/docs/Web/JavaScript/Reference/Operators/Less_than_or_equal)

##  Help improve MDN

Was this page helpful to you?

Yes  No

[ Learn how to contribute
](https://github.com/mdn/content/blob/main/CONTRIBUTING.md "This will take you
to our contribution guidelines on GitHub.") .

This page was last modified on  Nov 15, 2023  by  [ MDN contributors ](/en-
US/docs/Web/JavaScript/Reference/Operators/Less_than/contributors.txt) .

[ View this page on GitHub
](https://github.com/mdn/content/blob/main/files/en-
us/web/javascript/reference/operators/less_than/index.md?plain=1 "Folder: en-
us/web/javascript/reference/operators/less_than \(Opens in a new tab\)") â¢
[ Report a problem with this content
](https://github.com/mdn/content/issues/new?template=page-report.yml&mdn-
url=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-
US%2Fdocs%2FWeb%2FJavaScript%2FReference%2FOperators%2FLess_than&metadata=%3C%21--+Do+not+make+changes+below+this+line+--%3E%0A%3Cdetails%3E%0A%3Csummary%3EPage+report+details%3C%2Fsummary%3E%0A%0A*+Folder%3A+%60en-
us%2Fweb%2Fjavascript%2Freference%2Foperators%2Fless_than%60%0A*+MDN+URL%3A+https%3A%2F%2Fdeveloper.mozilla.org%2Fen-
US%2Fdocs%2FWeb%2FJavaScript%2FReference%2FOperators%2FLess_than%0A*+GitHub+URL%3A+https%3A%2F%2Fgithub.com%2Fmdn%2Fcontent%2Fblob%2Fmain%2Ffiles%2Fen-
us%2Fweb%2Fjavascript%2Freference%2Foperators%2Fless_than%2Findex.md%0A*+Last+commit%3A+https%3A%2F%2Fgithub.com%2Fmdn%2Fcontent%2Fcommit%2F7510520d8edcae13dd245644b32d4217c3f04f3a%0A*+Document+last+modified%3A+2023-11-15T16%3A52%3A53.000Z%0A%0A%3C%2Fdetails%3E
"This will take you to GitHub to file a new issue.")

[ MDN logo  ](/)

Your blueprint for a better internet.

  * [ MDN on Mastodon  ](https://mozilla.social/@mdn)
  * [ MDN on X (formerly Twitter)  ](https://twitter.com/mozdevnet)
  * [ MDN on GitHub  ](https://github.com/mdn/)
  * [ MDN Blog RSS Feed  ](/en-US/blog/rss.xml)

##  MDN

  * [ About ](/en-US/about)
  * [ Blog ](/en-US/blog/)
  * [ Careers ](https://www.mozilla.org/en-US/careers/listings/?team=ProdOps)
  * [ Advertise with us ](/en-US/advertising)

##  Support

  * [ Product help ](https://support.mozilla.org/products/mdn-plus)
  * [ Report an issue ](/en-US/docs/MDN/Community/Issue