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.
TheNumber.NaN static data property represents Not-A-Number, which is equivalent toNaN. For more information about the behaviors ofNaN, see thedescription for the global property.
In this article
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: 0Value
The number valueNaN.
Property attributes ofNumber.NaN | |
|---|---|
| Writable | no |
| Enumerable | no |
| Configurable | no |
Description
BecauseNaN is a static property ofNumber, you always use it asNumber.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> |