549 votes

Comment voulez-vous vérifier qu'un nombre est NaN en JavaScript?

Je n'ai été l'essayer dans la console JavaScript de Firefox, mais ni l'autre des déclarations suivantes return true:

parseFloat('geoff') == NaN;

parseFloat('geoff') == Number.NaN;

732voto

chiborg Points 7938

Essayez ce code:

isNaN(parseFloat("geoff"))

180voto

Jason Points 1040

Je viens de tomber sur cette technique dans le livre Efficace JavaScript qui est assez simple:

Depuis NaN est la seule valeur JavaScript qui est considérée comme inégal à lui-même, vous pouvez toujours tester si une valeur est NaN en cochant l'option pour l'égalité à lui-même:

var a = NaN;
a !== a; // true 

var b = "foo";
b !== b; // false 

var c = undefined; 
c !== c; // false

var d = {};
d !== d; // false

var e = { valueOf: "foo" }; 
e !== e; // false

64voto

rahul Points 84185

Utilisez ce code:

isNaN('geoff');

Voir isNaN

alert ( isNaN('abcd'));  // alerts true
alert ( isNaN('2.0'));  // alerts false
alert ( isNaN(2.0));  // alerts false

20voto

Jerome WAGNER Points 6622

Vous devez utiliser le global isNaN(value) appel de la fonction, parce que:

  • Il est pris en charge cross-browser
  • Voir isNaN pour la documentation

Exemples:

 isNaN('geoff'); // true
 isNaN('3'); // false

J'espère que cela va vous aider.

17voto

Jonathan Azulay Points 1405

NaN est une valeur spéciale qui ne peut pas être testé comme ça. Une chose intéressante, je voulais juste partager cette

var nanValue = NaN;
if(nanValue != nanValue) // Returns true!
    alert('nanValue is NaN');

Elle renvoie true (vrai seulement pour des valeurs NaN et Est un moyen sûr de test. Devrait certainement être enveloppé dans une fonction ou atleast commenté, parce qu'Il ne fait pas beaucoup de sens, évidemment, pour tester si la même variable n'est pas égale les unes des autres, hehe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X