parseInt ("010", 10); gegen parseInt (010, 10);
Ich bin verwirrt über ein bestimmtes Ergebnis vonparseInt
. Ich dachte, ich verstehe die meisten seiner Macken, aber dieser ist unklar.
parseInt("010", 10); // 10
parseInt(010, 10); // 8, but expecting 10
Im zweiten Beispiel habe ich den richtigen Radix angegeben. Was ist der Grund für das unerwartete Ergebnis?
Lösung
Das Problem liegt im oktalen Literal. Wenn einer Zahl eine 0 vorangestellt wird, wird sie als oktales Literal betrachtet.
Wenn Sie ausführen
console(010); // 8
im nicht-Skript-Modus erhalten Sie 8. Der Grund, warum parseInt das hat, was ich für seltsam hielt, war, dass ich im Wesentlichen ausgeführt habe
parseInt(8, 10); // 8
und erwarten 10.
ParseInt sah nie 010, nur 8. Vielen Dank an alle für ihre Hilfe.