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.

La propriété globale NaN est une valeur utilisée pour représenter une quantité qui n'est pas un nombre (Not a Number en anglais).

Attributs de NaN
ÉcrivableNon
ÉnumérableNon
ConfigurableNon

Exemple interactif

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

console.log(sanitize("1"));
// Expected output: "1"

console.log(sanitize("NotANumber"));
// Expected output: NaN

Syntaxe

js
NaN;

Description

NaN est une propriété de l'objet global, c'est-à-dire qu'elle est accessible globalement.

La valeur initiale de NaN est Number.NaN. Dans les navigateurs modernes, NaN est une propriété non-configurable et non-écrivable. Si ce n'est pas le cas, il faut éviter de la modifier et de l'écraser.

Il est rare d'utiliser expressément NaN dans un programme. On récupère généralement NaN comme le résultat d'une fonction mathématique qui échoue (Math.sqrt(-1)) où quand une fonction qui tente d'interpréter un nombre échoue (parseInt("blabla")).

Tester NaN

Les opérateurs d'égalité (== et ===) ne peuvent pas être utilisé pour tester une valeur par rapport à NaN. Il faut utiliser Number.isNaN() ou isNaN() à la place.

js
NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true

La différence entre isNaN() et Number.isNaN() est la façon dont les valeurs sont, ou non, converties en nombre avant de vérifier si la valeur est NaN : isNaN() convertira l'argument en nombre avant de vérifier alors que Number.isNaN() ne renverra true que si l'opérande vaut NaN.

js
isNaN("coucou monde"); // renvoie true
Number.isNaN("coucou monde"); // renvoie false

Spécifications

Specification
ECMAScript® 2025 Language Specification
# sec-value-properties-of-the-global-object-nan

Compatibilité des navigateurs

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
NaN

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Voir aussi