Операторы относительного сравнения подразумевают числовой контекст, поэтому в этих случаях (>
, >=
) null
преобразуется в число (ноль).
В ==
Однако оба значения рассматриваются как логические значения, а Javascript не считает, что null
должен быть равен любым другим «фальшивым» значениям. Это странно. Алгоритм равенства для ==
имеет кучу особых случаев, а null
- один из них. Это только ==
для себя и undefined
.