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
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
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® 2025 Language Specification # sec-value-properties-of-the-global-object-nan |
Compatibilité des navigateurs
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
NaN |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support