2017-08-08 5 views
1

Wie bewerten Sie diese Aussage in Javascript?Wie bewertet man eine NaN-Gleichheit in Javascript?

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

Was Ergebnis wird erwartet? Wenn der erste Teil des Ausdrucks "wahr" ist, wie könnte der zweite Teil des Ausdrucks auch "wahr" sein? – guest271314

+0

in der rechten Seite: zwei Operanden ausgewertet von und Operator dann Gleichheit überprüft oder Gleichheit überprüft mit allen Operanden auf der rechten Seite dann beide Ergebnisse bewerten? –

+1

Wie kann der Wert eine Zahl sein und keine Nummer gleichzeitig sein? Soweit ich mich des Quantencomputers bewusst bin, ist bei JavaScript zu diesem Zeitpunkt noch nicht implementiert – guest271314

Antwort

0

Diese statment ist unlogisch, weil Sie versuchen, um zu sehen, ob es sich um eine Zahl und nicht um eine Zahl in derselben Anweisung ist, zwei Ausgangs verschiedene booleans machen.

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

Ich glaube, Sie suchen

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

Wenn Sie erwarten, es zu drehen, Sie ! fügen Sie es starten

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

EDIT:

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

Grund, dass dies nicht funktioniert, ist, weil Notnan ist eine Zeichenfolge, daher gibt es false zurück und wird nicht richtig ausgewertet. isNaN allein funktioniert einwandfrei.

+0

für überprüfen Sie eine Variable (Literal) ist Nan müssen wir überprüfen, diese Variable ist typeof Zahl, weil NaN ist die Zahl für sich selbst dann überprüfen Sie diese Variable ist Typ von NaN. –

+0

@hassanmohagheghiyan Was ist der Punkt der Überprüfung solcher Sache, wenn IsNaN Funktion selbst entweder wahr oder falsch je nach Eingabe zurückgibt. Sie könnten parseInt() verwenden, um sicherzustellen, dass eine Nummer verarbeitet wird. – Cernodile

+0

bitte check typeof (isnan) === NaN das Ergebnis fase! –

0

laufen diese wird es etwas sagen,

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...') 
 
}

Verwandte Themen