Can you explain the logical evaluation of NaN in javascript?
NaN==NaN (false)
!NaN==!NaN (true)
NaN!=NaN (true)
NaN==false (false)
NaN==true (false)
I am a little surprised here...
Can you explain the logical evaluation of NaN in javascript?
NaN==NaN (false)
!NaN==!NaN (true)
NaN!=NaN (true)
NaN==false (false)
NaN==true (false)
I am a little surprised here...
Because that's what the spec says.
Specifically, the IEE floating point spec says that NaN does not equal itself.
Therefore, in Javascript, there is no value that NaN can ever equal.
!NaN is true, because NaN is a falsy value.
This makes all of your examples obvious.