null + 1 = 1
undefined + 1 = NaN
I am not able to understand what is the logic behind this. Shouldn't both have returned same result?
See Question&Answers more detail:osnull + 1 = 1
undefined + 1 = NaN
I am not able to understand what is the logic behind this. Shouldn't both have returned same result?
See Question&Answers more detail:osBasically, because that's what the language spec says - looking at ToNumber
:
Type Result
Null +0
Undefined NaN
And NaN
+ anything is NaN
This might make some sense from the language perspective: null
means an explicit empty value whereas undefined implies an unknown value. In some way - zero is the "number empty value" since it is neutral to addition. That said - that's quite a stretch and I think this is generally bad design. In real JavaScript code - you almost never add null
to things.