¿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?

Trackback URL for this post:

http://ventanazul.com/trackback/201

Drupal en 15 gotas y Teletrabajo Hoy, obtén ya la oferta de primavera.

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <h1> <h2> <h3> <h4>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato