2016-12-11 1 views
-2

Ich lerne Javascript-Mechanik und ich glaube, ich bin gerade über einen Fehler mit isNaN() gestolpert.Ich glaube, ich entdeckte einen Fehler mit isNaN()

Hier ist der Testcode.

Das Konsolenprotokoll gibt "false" zurück, was darauf hinweist, dass Javascript "1000" als Nummer betrachtet. Ich dachte, dass alles innerhalb " " als eine Zeichenfolge angesehen wurde. Offensichtlich nicht immer. Wenn ich falsch liege, hat vielleicht jemand einen Einblick, der mich auf den Punkt bringen kann.

+0

NaN hat eine sehr spezifische Bedeutung in Bezug auf Gleitkommazahl Darstellung. IsNaN testet nur dafür. – Thilo

+0

Dangit danke! Ich suchte nach isNaN und dieser Thread kam nicht auf. Dieser Thread hat die Antwort. – DR01D

+0

Ich habe den Beitrag nicht gelesen, aber ich bin mir ziemlich sicher, dass Javascript Zeichenfolgen als Zahlen erkennt. – alexr101

Antwort

5

Offenbar ist es eine Funktion, kein Fehler.

Wenn das Argument für die isNaN-Funktion nicht vom Typ Nummer ist, wird der Wert zuerst auf eine Zahl gezwungen. Der resultierende Wert wird dann getestet, um zu bestimmen, ob es NaN ist.

Quelle: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN

+0

Eine weitere bemerkenswerte Unterscheidung: 'Number.isNaN' macht diesen Zwang nicht. 'isNaN ('A') === wahr ', während' Nummer.isNaN ('A') === falsch 'ist. – gyre

Verwandte Themen