0

Why the Primary Expression '1' is the only number that isn't greater than but is equal to the Primary Expression 'true'? Am also new to JavaScript and programming in general..

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
</head>

<body>
  <script>
    if (1 > true || 1 < true) {
      document.write("YEA");
    } else if (2 == true) {
      document.write("YEA MAN");
    } else if (2 > true && 1 == true) {
      document.write("WTF BRAH!!");
      // evaluates to the string "WTF BRAH!!"
    }
  </script>
</body>

</html>
  • You will find that it is unnecessary to compare numbers with bools in a well designed program. – QuentinUK Jan 06 '22 at 07:35
  • 2
    Documentation: [`==`](//developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Equality), [`<`](//developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Less_than). Specification: [`==`](//tc39.es/ecma262/#sec-equality-operators-runtime-semantics-evaluation) uses [IsLooselyEqual](//tc39.es/ecma262/#sec-islooselyequal), [`<`](//tc39.es/ecma262/#sec-relational-operators-runtime-semantics-evaluation) uses [IsLessThan](//tc39.es/ecma262/#sec-islessthan). Follow the specification steps. `1 == true` coerces to `1 == 1` → `1 === 1` → `true`. `1 < true` coerces to `1 < 1` → `false`. – Sebastian Simon Jan 06 '22 at 07:48
  • _“Am also new to JavaScript”_ — [Don’t use `document.write`](/q/802854/4642212), learn from [MDN](//developer.mozilla.org/docs/Web/JavaScript/Guide), not W3Schools. – Sebastian Simon Jan 06 '22 at 07:54
  • I used document.write for the code snippet for demonstration purpose only, more convenient than console.log when you run code snippet in stack overflow @Sebastian Simon – troublesome naw Jan 06 '22 at 09:08

0 Answers0