Entradas

Mostrando entradas de abril, 2014

¿Porqué Javascript retorna cero para parseInt('08') y parseInt('09')?

Escribiendo una sencilla función Javascript para crear un objeto Date a partir de una cadena con formato 'yyyy-mm-dd' me encontré con una particularidad de la función parseInt, usada para transformar cadenas en enteros. Tanto parseInt('08') como parseInt('09') retornan cero debido a que la función pretende determinar la base del sistema de numeración usado para la conversión y en Javascript los números que empiezan en cero se consideran de base octal. 08 y 09 no existen en el sistema octal y allí el problema. Para resolverlo basta con usar el segundo parámetro de parseInt, que es justamente la base del sistema de numeración a usar. Las llamadas correctas serían entonces: parseInt('08', 10) y parseInt('09', 10). Otro de esos detallitos, ¿no?