J'ai seulement essayé cela dans la console JavaScript de Firefox, mais aucune des déclarations suivantes ne renvoie true :
parseFloat('geoff') == NaN;
parseFloat('geoff') == Number.NaN;
J'ai seulement essayé cela dans la console JavaScript de Firefox, mais aucune des déclarations suivantes ne renvoie true :
parseFloat('geoff') == NaN;
parseFloat('geoff') == Number.NaN;
Essayez ce code :
isNaN(parseFloat("geoff"))
Pour vérifier si n'importe quelle valeur est NaN, au lieu de seulement les nombres, voir ici : Comment tester si NaN en Javascript ?
Si vous voulez qu'une chaîne vide soit interprétée comme NaN
, alors oui. (Je ne dis pas que vous le voudriez toujours.)
Si j'étais vous, je le definirais comme une variable et j'utiliserais une condition variable !== variable. Comme c'est indiqué dans les spécifications tc39.github.io/ecma262/#sec-isnan-number
Je viens de découvrir cette technique dans le livre Effective JavaScript qui est assez simple :
Étant donné que NaN est la seule valeur JavaScript qui est traitée comme étant différente d'elle-même, vous pouvez toujours vérifier si une valeur est NaN en la comparant à elle-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
Je n'avais pas réalisé cela jusqu'à ce que @allsyed commente, mais c'est spécifié dans le ECMA : https://tc39.es/ecma262/multipage/global-object.html#sec-isnan-number
Utilisez ce code :
isNaN('geoff');
Voir isNaN()
docs sur MDN.
alert ( isNaN('abcd')); // alerte true
alert ( isNaN('2.0')); // alerte false
alert ( isNaN(2.0)); // alerte false
Vous devriez utiliser l'appel de fonction global isNaN(valeur)
, car:
Exemples:
isNaN('geoff'); // true
isNaN('3'); // false
J'espère que cela vous aidera.
NaN est une valeur spéciale qui ne peut pas être testée de cette façon. Une chose intéressante que je voulais simplement partager est la suivante
var nanValue = NaN;
if(nanValue !== nanValue) // Retourne true!
alert('nanValue est NaN');
Cela retourne true uniquement pour les valeurs NaN et C'est une façon sûre de tester. Devrait certainement être encapsulé dans une fonction ou au moins commenté, car cela n'a pas beaucoup de sens évidemment de tester si la même variable n'est pas égale à elle-même, hehe.
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.
6 votes
Vaut la peine de lire si votre objectif actuel est de vérifier les numéros : stackoverflow.com/questions/18082/…
3 votes
designpepper.com/blog/drips/…
1 votes
@Gothdo: bien sûr, mais j'ai demandé comment vérifier qu'un nombre est NaN, par opposition à n'importe quelle valeur.
3 votes
@PaulD.Waite Oui, mais beaucoup de personnes viennent ici lorsqu'ils recherchent quelque chose comme "comment vérifier si une variable est nan en javascript".
0 votes
PaulD.Waite Je suis d'accord avec vous, mais j'ai la même préoccupation que @Gothdo. Beaucoup de gens atterrissent sur cette question avec l'intention de savoir comment vérifier si une valeur en JS est NaN. Vous pouvez consulter le commentaire de mjohnsonengr sur la même réponse. Au fait, j'ai également signalé cette question pour l'attention des modérateurs.
0 votes
@dopeddude: oui, j'ai suggéré que cette question soit fermée en tant que doublon de 30314447 lorsque je l'ai signalée. Cela pourrait aider.
0 votes
@Gothdo : ces gens ont besoin d'apprendre à lire attentivement les choses.
0 votes
NaN n'est pas égal à NaN pour une raison quelconque Vérifiez avec
NaN == NaN
et il retourne faux Le truc, c'est qu'il n'y a rien avec quoi vous pouvez comparer NaN qui fera dire qu'il est égal0 votes
En ES6 (alias ECMAScript 2015), utilisez Number.isNaN, vérifiez cette réponse et MDN