JS: 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".

typeof NaN === "number"

Test Equality of NaN

NaN === NaN return false.

(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