Posts Tagged ‘parseInt’

JavaScript: ¿Bug en parseInt?

Wednesday, October 1st, 2008

¿Se han fijado que cuando utilizamos la función parseInt de JavaScript con valores “08″ ó “09″ la función regresa un 0? (si, un bonito y redondo cero)

Si no se habían dado cuenta y han utilizado esta función en alguna de sus aplicaciones mas vale que sigan leyendo.

¿Bug ó no Bug? he ahi el dilema…onion_cry

Pues no, no es un bug.. pero vaya que si podria ocacionar uno que otro dolor de cabesa… entonces ¿what is the fucking problem? … pues el fucking problem es que cuando parseInt recibe como primer parametro de entrada una cadena que inicia con un cero pienza que sera un valor base-8 (octal) y como 8 y 9 no son valores octales validos nos regresa nuestro bonito cero! =) ¡a gusto! ¿no?

Oh dios! onion_wtf ¿y que hago para resolver este problema?

Facil.. utilizaremos el segundo parametro de parseInt, el cual parece que es un parametro sacado de la manga pues es raro ver información sobre el (por lo menos yo supe de su existencia hasta un par de años despues de conocer a parseInt), es decir que lo utilizaremos asi:

parseInt(“08″, 10) ;

¿y que hace ese 10 ahi? onion_? Pues el segundo parametro le dice a parseInt que vamos a trabajar en base-10, y asi evitamos el bonito cero inesperado.
¿Esta demas decir que funciona también con “09″?

ES MUY IMPORTANTE que utilicemos parseInt de la manera correcta para evitar “BUG” en nuestras aplicaciones.

Nota:
Con parseFloat no se presenta este problema, y el parseInt de Opera tampoco lo presenta.