@torchy when you do "null == 0", it recognizes they're different types (== type checking rules are complicated but in this case yeah) so it's false when you do "null > 0" or "null >= 0", then both arguments are turned into numbers in this case, "null" becomes "0" so "!(0 > 0)" but "0 >= 0"
@torchynull == 0: null can only be compared to undefined, so false null > 0: null gets coerced to a number, 0 null >= 0 null gets coerced to the number 0 again, 0 >= is true
You can force coercion to a number using +null with the first one, so +null == 0 is true