Home >Web Front-end >JS Tutorial >Why does lt; lt; eturn true but gt; gt; eturn false in JavaScript?

Why does lt; lt; eturn true but gt; gt; eturn false in JavaScript?

WBOY
WBOYOriginal
2024-08-21 06:05:02784browse

Why does lt; lt; eturn true but gt; gt; eturn false in JavaScript?

Hey, JavaScript fans! Have you ever had one of those moments where your code does something weird and you're left scratching your head? Well, I've got a good one for you today.

Check this out:

console.log(1 < 2 < 3);  // true
console.log(3 > 2 > 1);  // false

Wait, what? The second one is false? But 3 is greater than 2, and 2 is greater than 1, right? So what's going on here?

Let's break it down:

  1. JavaScript reads these comparisons from left to right.
  2. For 1 < 2 < 3:
    • First, it does 1 < 2. That's true.
    • Then it does true < 3.
  3. For 3 > 2 > 1:
    • First, it does 3 > 2. That's true.
    • Then it does true > 1.

Now, here's the kicker: when JavaScript compares true to a number, it turns true into 1.

So what's really happening is:

  1. true < 3 becomes 1 < 3, which is true.
  2. true > 1 becomes 1 > 1, which is false.

And that's why we get true for the first one and false for the second one.

Crazy, right?

So, what can we learn from this? When you're doing multiple comparisons, it's better to be clear. Instead of 3 > 2 > 1, you could write (3 > 2) && (2 > 1). It's a bit longer, but at least it does what you expect.

The above is the detailed content of Why does lt; lt; eturn true but gt; gt; eturn false in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Promises in java scriptNext article:Promises in java script