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?
Basically, 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.
Because undefined
means its value is not defined yet so it will take NaN
and when you add 1 to it NaN + 1
which is resulting that value is still not defined NaN
And on the other hand null + 1
- object have null
value and your are trying to add 1 so that it will return 1 which assigned to object
You can also refer this for basic difference - What is the difference between null and undefined in JavaScript?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With