2012-08-02 7 views
15

Mögliche Duplizieren schenkt:
Workarounds for JavaScript parseInt octal bugwarum parseInt ('08 ') ist 0 geben, während parseInt ('07') 7

ich auf Javascript arbeite, und ich scheinen das merkwürdig zu finden, dass die JavaScript-Funktion parseInt ('08 ') 0 zurückgibt und parseInt ('07') 7 zurückgibt.

Dieses Verhalten scheint in Firefox vorhanden zu sein.

parseInt ('08') 8 ist in IE Rückkehr, aber 0 in Firefox ..

Warum? Ich möchte, dass parseInt ('08 ') wie erwartet 8 zurückgibt und in IE kommt.

Antwort

32

Yeah, ich bin schon einmal auf diesen hier gestoßen. Es ist wirklich seltsam, weil einige Browser diese interpretieren, wie Sie es in der Basis analysieren wollen, in dem folgenden Artikel 8. Bedenken Sie:

http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256C85006A6604

im Grunde, müssen Sie den Parser sagen Basis 10 Zahlen zu verwenden:

parseInt('08', '10'); 
+3

'parseInt ('08 ', '10');'? "Ja wirklich?" Normalerweise tun wir einfach '+" 08 "', da das Hinzufügen von '+' vor einem String es ohne Probleme zu Number macht. –

+1

Hacks funktionieren auch – AceCorban

+0

@Derik Post hoc ergo propter hoc – lededje