2012-08-02 17 views
15

Duplicar posible:
Workarounds for JavaScript parseInt octal bugqué parseInt (08 ') está dando a 0, mientras que parseInt (07') está dando 7

estoy trabajando en Javascript, y yo parece encontrar esto extraño, que la función javascript parseInt ('08 ') está retornando 0 y parseInt ('07') está retornando 7.

este comportamiento parece estar allí en Firefox.

parseInt (08') está regresando 8 en IE, pero 0 en Firefox ..

¿Por qué? Quiero que parseInt ('08 ') devuelva 8, como se esperaba y entrar en IE.

Respuesta

32

Sí, me encontré con este antes. Es realmente extraño porque algunos navegadores interpretan esto como que querer analizarlo en base 8. Considere el siguiente artículo:

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

básicamente, tiene que comunicar al analizador de usar base de 10 números:

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

'parseInt ('08 ',' 10 ');'? De Verdad? Por lo general, solo haremos '+" 08 "', ya que agregar '+' delante de una Cadena lo convertirá en Número sin ningún problema. –

+1

hacks también funcionará – AceCorban

+0

@Derik Post hoc ergo propter hoc – lededje

Cuestiones relacionadas