Schon mal etwas von einem Radix Parameter gehört? Ich zum ersten Mal als ich JSLint verwendet habe um meinen JavaScript Code zu überprüfen. Douglas
Crockford empfielt nämlich bei Verwendung der parseInt(...) Funktion den Radix Parameter anzugeben.
Problem at line x character xy: Missing radix parameter.
Nun, ... er empfiehlt es nur, es ist nämlich nicht Pflicht da JavaScript in der Lage ist selbstständig zu erkennen in welchem Format der umzuwandelnde String vorliegt. JavaScript untersucht den Beginn des String darauf, ob er mit 0 oder 0x beginnt. Wenn nicht, dann nimmt es an dass es sich um das Dezimalsystem (10) handelt. Logisch, oder? Also lass ich ihn weg.
Einige Tage später....
Die parseInt(...) Funktion liefert 0, obwohl ich nicht "0" hereingebenen habe. Doch woran liegts? Kurze Recherche bringt mich auf diesen Artikel der das Problem beschreibt. In dem Moment kommt mir auch der Radix Parameter wieder in den Sinn und dessen Bedeutung. Da meine Eingabe zufälliger weise auch aus "09" bestand war das Problem klar. JavaScript nahm an es würde sich um das Octal-Zahlensystem handeln, doch da dort keine 9 existiert spukt es einfach eine 0 aus.
Korrekt schreibe ich nun also
parseInt("09", 10) //=> 9