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


NaN is a Property

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

const xx = "NaN";


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 .

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

JavaScript Special Literals

JavaScript in Depth

JS Obj Reference

Global Object

Special Objects

Static Objects

Primitive Wrapper

Constant Literals

Simple Functions

Error Objects