Nachdem ich weiter gesucht habe, fand ich dies in der ECMAScript-Spezifikation.
Ссылка
Wenn die Funktion parseInt aufgerufen wird, werden die folgenden Schritte ausgeführt:
- Sei inputString ToString (string).
- Sei S ein neu erzeugter Teilstring von inputString, der aus dem ersten Zeichen besteht, das nicht a ist
StrWhiteSpaceChar und alle Zeichen, die diesem Zeichen folgen. (Mit anderen Worten, entfernen Sie das führende Weiß
Leerzeichen.) Wenn inputString keine solchen Zeichen enthält, sei S die leere Zeichenfolge.
- Lass das Zeichen 1 sein.
- Wenn S nicht leer ist und das erste Zeichen von S ein Minuszeichen ist, dann sei das Zeichen 1.
- Wenn S nicht leer ist und das erste Zeichen von S ein Pluszeichen + oder ein Minuszeichen - ist, dann entferne das erste Zeichen
von S.
- Sei R = ToInt32 (radix).
- Lassen Sie stripPrefix wahr sein.
- Wenn R 0, dann © Ecma International 2011 105
ein. Wenn R & lt; 2 oder R & gt; 36, dann gib NaN zurück.
b. Wenn R 16 ist, sei stripPrefix falsch.
- Sonst, R = 0
ein. Sei R = 10.
- Wenn stripPrefix wahr ist, dann
ein. Wenn die Länge von S mindestens 2 ist und die ersten zwei Zeichen von S entweder -0x‖ oder -0X‖ sind, dann entferne
die ersten zwei Zeichen von S und lassen R = 16.
- Wenn S ein beliebiges Zeichen enthält, das keine Radix-R-Ziffer ist, dann sei Z die Teilmenge von S, die aus allen besteht
Zeichen vor dem ersten solchen Zeichen; Ansonsten sei Z S.
- Wenn Z leer ist, gebe NaN zurück.
- Sei mathInt der mathematische Integer-Wert, der in der Radix-R-Notation durch Z dargestellt wird, indem man die Buchstaben verwendet
A-Z und a-z für Ziffern mit den Werten 10 bis 35. (Wenn R jedoch 10 ist und Z mehr als 20 enthält
Englisch: eur-lex.europa.eu/LexUriServ/LexUri...0999: EN: HTML signifikante Ziffern, jede signifikante Stelle nach dem 20. kann durch eine Ziffer ersetzt werden
Implementierung; und wenn R nicht 2, 4, 8, 10, 16 oder 32 ist, dann kann mathInt von der Implementierung abhängig sein
Annäherung an den mathematischen ganzzahligen Wert, der in Radix-R-Schreibweise durch Z dargestellt wird.)
- Die Zahl ist der Zahlenwert für mathInt.
- Zeichen Nummer zurückgeben.
HINWEIS parseInt interpretiert möglicherweise nur einen führenden Teil der Zeichenfolge als Ganzzahl; Es ignoriert alle Zeichen, die
kann nicht als Teil der Notation einer ganzen Zahl interpretiert werden, und es wird kein Hinweis gegeben, dass solche Zeichen vorhanden waren
ignoriert.
Wenn die Funktion parseFloat aufgerufen wird, werden die folgenden Schritte ausgeführt:
- Sei inputString ToString (string).
- Lasse trimmedString eine Teilzeichenfolge von inputString sein, die aus dem linken Zeichen besteht, das nicht a ist
StrWhiteSpaceChar und alle Zeichen rechts von diesem Zeichen. (Mit anderen Worten, entfernen Sie das führende Weiß
Leerzeichen.) Wenn inputString keine solchen Zeichen enthält, sollte trimmedString die leere Zeichenfolge sein.
- Wenn weder trimmString noch ein Präfix von trimmedString die Syntax eines StrDecimalLiterals erfüllt (siehe
9.3.1), gib NaN zurück.
- Sei numberString das längste Präfix von trimmedString, das trimmedString selbst sein könnte, das erfüllt
die Syntax eines StrDecimalLiteral.
- Gibt den Zahlenwert für die MV von numberString zurück.
HINWEIS parseFloat interpretiert möglicherweise nur einen führenden Teil der Zeichenfolge als Zahlenwert. Es ignoriert alle Zeichen, die
kann nicht als Teil der Notation eines Dezimal-Literals interpretiert werden, und es wird kein Hinweis darauf gegeben, dass solche Zeichen vorhanden waren
ignoriert.
Gibt true zurück, wenn das Argument auf NaN umschaltet und andernfalls false zurückgibt.
- Wenn ToNumber (Zahl) NaN ist, true zurück.
- Andernfalls gebe false zurück.
HINWEIS Ein zuverlässiger Weg für ECMAScript-Code zu testen, ob ein Wert X ein NaN ist, ist ein Ausdruck der Form X! == X.
Das Ergebnis wird nur dann wahr sein, wenn X ein NaN ist.