The Number.NaN property represents Not-A-Number, which is equivalent to NaN. For more information about the behaviors of NaN, see the description for the global property.

Try it

Because NaN is a static property of Number, you always use it as Number.NaN, rather than as a property of a number value.

Property attributes of Number.NaN
Writable no
Enumerable no
Configurable no


Checking whether values are numeric

function sanitize(x) {
  if (isNaN(x)) {
    return Number.NaN;
  return x;


ECMAScript Language Specification
# sec-number.nan

Browser compatibility

BCD tables only load in the browser

See also