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
Écrivable Non
Énumérable Non
Configurable Non

Syntaxe

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.

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

Spécifications

Spécification Statut Commentaires
Première édition d'ECMAScript. Standard Définition initiale. Implémentée avec JavaScript 1.3
ECMAScript 5.1 (ECMA-262)
La définition de 'NaN' dans cette spécification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'NaN' dans cette spécification.
Standard  
ECMAScript 2016 Draft (7th Edition, ECMA-262)
La définition de 'NaN' dans cette spécification.
Projet  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple (Oui) (Oui) (Oui) (Oui) (Oui)
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight, teoli, tregagnon, Jeremie, Mgjbot, BenoitL
 Dernière mise à jour par : SphinxKnight,