isNaN () (Deutsch)

Seit den frühesten Versionen der Funktionsspezifikation isNaN ist das Verhalten für nicht numerische Argumente verwirrend. Wenn das Argument für die Funktion isNaN nicht vom Typ Number ist, wird der Wert zuerst zu einer Number gezwungen. Der resultierende Wert wird dann getestet, um festzustellen, ob es sich um NaN handelt. Für Nicht-Zahlen, die beim Erzwingen eines numerischen Typs zu einem gültigen nicht-NaN-numerischen Wert führen (insbesondere die leere Zeichenfolge und die booleschen Grundelemente, die beim Erzwingen numerische Werte null oder eins ergeben), kann der „falsche“ zurückgegebene Wert unerwartet sein. Die leere Zeichenfolge zum Beispiel ist sicherlich „keine Zahl“. Die Verwirrung ergibt sich aus der Tatsache, dass der Begriff „keine Zahl“ eine spezifische Bedeutung für Zahlen hat, die als IEEE-754-Gleitkommawerte dargestellt werden. Die Funktion sollte so interpretiert werden, dass sie die Frage beantwortet: „Ist dieser Wert, wenn er zu einem numerischen Wert gezwungen wird, ein IEEE-754-Wert“ Not A Number „?“

ECMAScript 2015 enthält die Number.isNaN() -Funktion. Number.isNaN(x) ist eine zuverlässige Methode, um zu testen, ob x NaN ist oder nicht. Selbst mit Number.isNaN bleibt die Bedeutung von NaN die genaue numerische Bedeutung und nicht „keine Zahl“. In Abwesenheit von Number.isNaN ist der Ausdruck (x != x) eine zuverlässigere Methode, um zu testen, ob die Variable x ist NaN oder nicht, da das Ergebnis nicht den Fehlalarmen unterliegt, die isNaN unzuverlässig machen.

Eine Polyfüllung für isNaN wäre (die Polyfüllung nutzt die eindeutige Eigenschaft von NaN):

Write a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.