--- title: Number.isNaN() slug: Web/JavaScript/Reference/Global_Objects/Number/isNaN tags: - ECMAScript 2015 - JavaScript - Méthode - Number - polyfill translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN original_slug: Web/JavaScript/Reference/Objets_globaux/Number/isNaN ---
La méthode Number.isNaN() permet de déterminer si la valeur passée en argument est {{jsxref("NaN")}}, avec un type {{jsxref("Number")}}. Cette version est plus robuste que la méthode de l'objet global {{jsxref("isNaN")}}.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Number.isNaN(valeurÀTester)
valeurÀTesterUn booléen qui indique si la valeur fournie en argument est {{jsxref("NaN")}}.
Les deux opérateurs d'égalité, {{jsxref("Opérateurs/Opérateurs_de_comparaison", "==", "#.C3.89galit.C3.A9_simple_(.3D.3D)")}} et {{jsxref("Opérateurs/Opérateurs_de_comparaison", "===", "#.C3.89galit.C3.A9_stricte_(.3D.3D.3D)")}}, renvoient false pour vérifier que {{jsxref("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 {{jsxref("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.
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
La fonction suivant fonctionne car NaN est la seule valeur JavaScript qui n'est pas égale à elle-même.
Number.isNaN = Number.isNaN || function(value) {
return typeof value === "number" && isNaN(value);
}
| Spécification | État | Commentaires |
|---|---|---|
| {{SpecName('ES2015', '#sec-number.isnan', 'Number.isnan')}} | {{Spec2('ES2015')}} | Définition initiale. |
| {{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}} | {{Spec2('ESDraft')}} |
Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une pull request sur https://github.com/mdn/browser-compat-data.
{{Compat("javascript.builtins.Number.isNaN")}}