So after a big argument/debate/discussion on the implementation of null and undefined in javascript I'd like somebody to explain the reasoning behind the implementation and why they differ in some circumstances. Some particular points I find troubling:
null == undefinedevaluates totruenull + 1equals 1 butundefined + 1equalNaNif(!null)evaluates to true andif(null)evaluates to false butnull == falseevaluates to false.
I've read the specification and I know how the results are reached, I'm looking for the paradigms and reasons that dictate this being the specification. Some of these points, especially the second one, given the first, feel very inconsistent.