well there is also one weird quirk I I assumed will be also included in this article:
because a <= b is defined as !(a > b)
then:
5 < NaN // false
5 == NaN // false
5 <= NaN // true
Edit: my bad, this does not work with NaN, but you can try `0 <= null`
IEEE 754 specifically prohibits that definition, and JavaScript indeed evaluates `5 <= NaN` to false.
Yep, my memory was incorrect here and I didn't had access to computer, but it is true with `0 <= null`
This is because null coerces to 0 in JS so this is effectively 0 <= 0. NaN is already a `number` so no coercion happens.
Note that == has special rules, so 0 == null does NOT coerce to 0 == 0. If using == null, it only equals undefined and itself.