Number.NaN

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨July 2015⁩.

The Number.NaN static data 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

function clean(x) { if (x === Number.NaN) { // Can never be true return null; } if (isNaN(x)) { return 0; } } console.log(clean(Number.NaN)); // Expected output: 0 

Value

The number value NaN.

Property attributes of Number.NaN
Writableno
Enumerableno
Configurableno

Description

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

Examples

Checking whether values are numeric

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

Specifications

Specification
ECMAScript® 2026 Language Specification
# sec-number.nan

Browser compatibility

See also