JK-3 this is pretty technical for those who don't want to click the link, here is the definition:
NaN: not a number—a symbolic floating-point datum. There are two kinds of NaN representations: quiet and signaling. Most operations propagate quiet NaNs without signaling exceptions, and signal the invalid operation exception when given a signaling NaN operand.
NaN is a first class citizen in JavaScript. Is existent in other programming languages (like Flash), meaning Not A Number. I think NaN is only given as a value if the language doesn’t throw a syntax error (so can only by a runtime error), which only occurs when performing maths on something that isn’t a number or dividing by zero (1/0 = undefined according to Google)