The way I think about it: number is a js type. A floating point double, in other languages.
NaN is a state that a number type can be in, representing a situation where the outcome of the numeric operation cannot be determined.
Anywho, also yea ….JavaScript is goofy