| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/isNaN | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La fonction isNaN() dtermine si une valeur est NaN, en convertissant d'abord la valeur en nombre si ncessaire. Comme la contrainte l'intrieur de la fonction isNaN() peut tre surprenante, vous pouvez prfrer utiliser Number.isNaN().
function milliseconds(x) {
if (isNaN(x)) {
return "N'est pas un nombre !";
}
return x * 1000;
}
console.log(milliseconds("100F"));
// Rsultat attendu : "N'est pas un nombre !"
console.log(milliseconds("0.0314E+2"));
// Rsultat attendu : 3140
isNaN(value)
valueLa valeur tester.
true si la valeur donne est NaN aprs avoir t convertie en nombre ; sinon, false.
isNaN() est une proprit fonction de l'objet global.
Pour les valeurs numriques, isNaN() teste si le nombre vaut NaN. Lorsque l'argument pass la fonction isNaN() n'est pas de type nombre, la valeur est d'abord contrainte un nombre, puis la valeur rsultante est compare NaN.
Ce comportement de isNaN() pour les arguments non numriques peut prter confusion ! Par exemple, une chane vide est convertie en 0, tandis qu'une valeur boolenne est convertie en 0 ou 1 ; ces deux valeurs ne sont intuitivement pas des nombres , mais elles ne valent pas NaN, donc isNaN() retourne false. Ainsi, isNaN() ne rpond ni la question l'entre est-elle la valeur flottante NaN ni la question l'entre n'est-elle pas un nombre .
Number.isNaN() est une faon plus fiable de tester si une valeur est la valeur numrique NaN ou non. Alternativement, l'expression x !== x peut tre utilise, et aucune de ces solutions n'est sujette aux faux positifs qui rendent le isNaN() global peu fiable. Pour tester si une valeur est un nombre, utilisez typeof x === "number".
La fonction isNaN() rpond la question l'entre est-elle fonctionnellement quivalente NaN lorsqu'elle est utilise dans un contexte numrique . Si isNaN(x) retourne false, vous pouvez utiliser x dans une expression arithmtique comme s'il s'agissait d'un nombre valide qui n'est pas NaN. Si isNaN(x) retourne true, x sera contraint NaN et la plupart des expressions arithmtiques retourneront NaN (car NaN se propage). Vous pouvez utiliser cela, par exemple, pour tester si un argument d'une fonction est traitable arithmtiquement (utilisable comme un nombre), et grer les valeurs qui ne sont pas assimilables un nombre en lanant une erreur, en fournissant une valeur par dfaut, etc. De cette faon, vous pouvez avoir une fonction qui exploite toute la polyvalence offerte par JavaScript en convertissant implicitement les valeurs selon le contexte.
Note :
L'oprateur + applique la fois l'addition de nombre et la concatnation de chane de caractres. Ainsi, mme si isNaN() retourne false pour les deux oprandes, l'oprateur + peut toujours retourner une chane de caractres, car il n'est pas utilis comme oprateur arithmtique. Par exemple, isNaN("1") retourne false, mais "1" + 1 retourne "11". Pour tre sr de travailler avec des nombres, contraignez la valeur un nombre et utilisez Number.isNaN() pour tester le rsultat.
Notez comment isNaN() retourne true pour des valeurs qui ne sont pas la valeur NaN mais qui ne sont pas des nombres non plus :
isNaN(NaN); // true
isNaN(undefined); // true
isNaN({}); // true
isNaN(true); // false
isNaN(null); // false
isNaN(37); // false
// Chanes de caractres
isNaN("37"); // false : "37" est converti en nombre 37 qui n'est pas NaN
isNaN("37.37"); // false : "37.37" est converti en nombre 37.37 qui n'est pas NaN
isNaN("37,5"); // true
isNaN("123ABC"); // true : Number("123ABC") est NaN
isNaN(""); // false : la chane vide est convertie en 0 qui n'est pas NaN
isNaN(" "); // false : une chane avec des espaces est convertie en 0 qui n'est pas NaN
// Dates
isNaN(new Date()); // false ; Les objets Date peuvent tre convertis en nombre (timestamp)
isNaN(new Date().toString()); // true ; la reprsentation sous forme de chane d'un objet Date ne peut pas tre analyse comme un nombre
// Tableaux
isNaN([]); // false ; la reprsentation primitive est "", qui se convertit en nombre 0
isNaN([1]); // false ; la reprsentation primitive est "1"
isNaN([1, 2]); // true ; la reprsentation primitive est "1,2", qui ne peut pas tre analyse comme un nombre
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-isnan-number |
NaNNumber.isNaN()Cette page a t modifie le 26 fvr. 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |