typeof NaN returns 'number'. Despite its name (Not a Number), NaN is actually a special value of the Number type in JavaScript. This might seem counterintuitive, but NaN is used to represent the result of numerical operations that cannot yield a meaningful result. For example, 0/0, Math.sqrt(-1), and parseInt('abc') all result in NaN. To properly check if a value is NaN, you should use the isNaN() function or, more accurately, Number.isNaN() in modern JavaScript, since the global isNaN() first attempts to convert its argument to a number.