2017-08-08 1 views
1

Comment évaluer cette instruction en javascript?Comment évaluer une égalité NaN en javascript?

isnan = NaN; 
notnan = "hello"; 
typeof(notnan) === "number" && isNaN(notnan); 
+1

Ce qui est résultat attendu? Si la première partie de l'expression est 'true', comment la deuxième partie de l'expression peut-elle aussi être' true'? – guest271314

+0

dans le côté droit: deux opérandes sont évalués par et l'opérateur puis l'égalité vérifiée ou l'égalité vérifiée avec tous les opérandes dans le côté droit puis évaluer les deux résultats? –

+1

Comment la valeur peut-elle être un nombre et ne pas être un nombre en même temps? Dans la mesure où je suis conscient de l'informatique quantique n'est pas mis en œuvre à JavaScript pour le moment – guest271314

Répondre

0

Ce statment est illogique, parce que vous essayez de voir si elle est un numéro et non un numéro dans la même déclaration, faisant deux sorties de booléens différents.

typeof(notnan) === "number" && isNaN(notnan); 

Je crois que vous cherchez

if (!isNaN(notnan)) { 
    // Code if it's a number 
} else { 
    // Code if it's not a number 
} 

Si vous prévoyez de retourner, vous ajoutez ! pour le démarrer

!isNaN(notnan) 
/* 
* Returns opposite of isNaN, if it's a number then `true` 
* else returns `false`. 
*/ 

EDIT:

typeof(notnan) === "number" && isNaN(notnan); 

Raison que cela ne fonctionne pas parce que notnan est une chaîne, donc elle renvoie false et n'évalue pas correctement. isNaN seul fonctionne parfaitement bien.

+0

pour vérifier une variable (littérale) est Nan nous devons vérifier cette variable est typeof nombre parce que NaN est le numéro par lui-même puis ckeck cette variable est typeof NaN. –

+0

@hassanmohagheghiyan Quel est le point de vérifier une telle chose si la fonction isNaN elle-même retourne vrai ou faux selon l'entrée. Vous pouvez utiliser parseInt() pour vous assurer que c'est un numéro en cours de traitement. – Cernodile

+0

s'il vous plaît vérifier typeof (isnan) === NaN qui résulte flase! –

0

ce terme il va dire quelque chose,

isnan = NaN; 
 
notnan = "hello"; 
 
if (typeof(notnan) === "number" && isNaN(notnan)){ 
 
    console.log('yes'); 
 
} 
 
else { 
 
    console.log('typeof(notnan) is :',typeof(notnan), '\n isNaN(notnan) :', isNaN(notnan),'\n this is,',typeof(notnan)=== "number",'-',isNaN(notnan), 'so this condition became false...') 
 
}