As Dave Newton said, NaN is not a number, and then you have to consider that it isn't finite nor infinite. The same occurs to these:
NaN > 0 // false
NaN < 0 // false
You might want to read these articles:
Question
Testing the isFinite
function I see that NaN
is an infinite number (even if it's not a number :-)
).
isFinite(NaN) // returns false
What's the logic behind this? Why isn't NaN
finite?
Solution
As Dave Newton said, NaN is not a number, and then you have to consider that it isn't finite nor infinite. The same occurs to these:
NaN > 0 // false
NaN < 0 // false
You might want to read these articles:
OTHER TIPS
Because it is not a numeric value...and finite/infinite is applicable only to numbers.
The result of any arithmetic operation on NaN is NaN.
The result of any logic operation on NaN is false.
Because an infinite number... is still a number. NaN isn't a number in any possible sense.
It's like an error in Matrix.
Finite means capable of being counted. It has to return true or false for isFinite. I think it makes more sense for NaN to be infinite.