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 | |
---|---|
Écrivable | Non |
Énumérable | Non |
Configurable | Non |
Exemple interactif
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
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
.
isNaN("coucou monde"); // renvoie true
Number.isNaN("coucou monde"); // renvoie false
Spécifications
Specification |
---|
ECMAScript Language Specification # sec-value-properties-of-the-global-object-nan |
Compatibilité des navigateurs
BCD tables only load in the browser