Number.isNaN()

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 méthode Number.isNaN() permet de déterminer si la valeur passée en argument est NaN, avec un type Number. Cette version est plus robuste que la méthode de l'objet global isNaN.

Exemple interactif

function typeOfNaN(x) {
  if (Number.isNaN(x)) {
    return "Number NaN";
  }
  if (isNaN(x)) {
    return "NaN";
  }
}

console.log(typeOfNaN("100F"));
// Expected output: "NaN"

console.log(typeOfNaN(NaN));
// Expected output: "Number NaN"

Syntaxe

js
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

js
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)

La fonction suivant fonctionne car NaN est la seule valeur JavaScript qui n'est pas égale à elle-même.

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

Spécifications

Specification
ECMAScript® 2025 Language Specification
# sec-number.isnan

Compatibilité des navigateurs

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
isNaN

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

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