Number.isNaN()

La méthode Number.isNaN() permet de déterminer si la valeur passée en argument est NaN. Cette version est plus robuste que la méthode de l'objet global isNaN.

Syntaxe

Number.isNaN(valeurÀTester)

Paramètres

valeurÀTester
La valeur qu'on souhaite comparer à NaN.

Valeur de retour

Un booléen qui indique si la valeur fournie en argument est NaN.

Description

Les deux opérateurs d'égalité, == et ===, renvoient false pour vérifier que NaN est NaN. La fonction Number.isNaN est nécessaire pour distinguer ce cas. Le résultat de cette comparaison sera différent avec les autres méthodes de comparaisons en JavaScript.

En effet, la fonction globale isNaN convertit l'argument en un nombre.  Number.isNaN ne convertit pas l'argument. Cela signifie qu'on peut passer des valeurs qui, normalement, seraient converties en NaN, mais qui ne sont pas NaN. Cela signifie également que, uniquement lorsque la méthode sera utilisée avec des nombres qui valent NaN, elle renverra true.

Exemples

Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true

// tout le reste renverra : false
Number.isNaN(undefined);
Number.isNaN({});     

Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);

Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");
Number.isNaN("NaN");
Number.isNaN("blabla"); // ex : cette valeur aurait rendu true avec la méthode isNaN de l'objet global

Prothèse d'émulation (polyfill)

Number.isNaN = Number.isNaN || function(value) {
    return typeof value === "number" && isNaN(value);
}

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Number.isnan' dans cette spécification.
Standard Définition initiale.
ECMAScript 2017 Draft (ECMA-262)
La définition de 'Number.isnan' dans cette spécification.
Projet  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple 25 15 (15) Pas de support (Oui) 9
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support ? 15.0 (15) Pas de support Pas de support 9

Voir aussi

  • L'objet Number auquel appartient cette méthode.
  • La méthode Object.is qui permet d'effectuer des comparaisons sur l'égalité de valeur
  • La méthode isNaN de l'objet global

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, Lcfvs
 Dernière mise à jour par : SphinxKnight,