JS WTF: 5 < 4 < 3

A quick fun “JS WTF?” post for you today. If you load up your JavaScript console & enter:

5 < 4 < 3

You’d be expecting to see false, right? However, you’ll actually see true. WTF?

This is actually down to the way JavaScript evaluates this and operator precedence. What it sees is:

(5 < 4) < 3

Which in turn gives

false < 3

JavaScript then coerces false into an integer 0:

0 < 3

And zero is indeed less than 3, so we get true returned.

Not much learned from this one but it’s quite a fun thing to show someone & then explain why. I’ll be trying to do a lot of these small “fun” posts as there’s a fair few areas of “WTF?” in JavaScript, as we all know.