Thanks for all the comments folks and particularly those of you who've taken the time to explain why js is behaving the way it is. To be honest, I just thought this stuff was amusing, I'm enjoying watching the discussion unfold here and onreddit.
Here's a fun one that I didn't put in:
js> 3>2>1 falseI would expect it to think I meant
3>(2>1)and 3 is greater than true if squint at it right. However, it actually evaluates to
js> (3>2)>1 falsewhich means
js> true>1
false
Gary Bernhardt has an amusing screencast about the topic if that's what your looking for. https://www.destroyallsoftware.com/talks/wat