JavaScript: NaN

By Xah Lee. Date: . Last updated: .

Meaning of NaN

NaN means Not a Number. It is typically returned when converting a value to number that doesn't make sense.

// convert string to number
const xx = Number("xyz");
// if arg does not make sense, result is NaN

console.log(Number.isNaN(xx));

NaN is a Property

NaN is the value of the property key "NaN" of the Global Object.

const xx = "NaN";

console.log(
  globalThis.hasOwnProperty(xx),
  Number.isNaN(globalThis[xx]),
);

NaN is a Literal Expression

NaN is a literal value. For example, you can write let x = NaN;

[see Number Constructor]

Type of NaN

Type of NaN is "number".

console.log(typeof NaN === "number");

Test Equality of NaN

NaN === NaN return false.

console.log((NaN === NaN) === false);

To test equality of NaN, use Object.is .

To test if a value is NaN, use Number.isNaN.

JavaScript Special Literals

BUY
ΣJS
JavaScript in Depth

JS Obj Reference

Global Object

Special Objects

Static Objects

Primitive Wrapper

Constant Literals

Simple Functions

Error Objects

Misc