Sólo un idiota puede ser totalmente feliz.
Mario Vargas Llosa
En los foros
Comentarios recientes
- Hola! vivo en China y esto
20 semanas 1 día atrás - David y Carlos:
O sea que,
22 semanas 2 días atrás - ¡Que tal amigos!; bien mi
22 semanas 3 días atrás - Estoy totalmente de acuerdo
24 semanas 1 día atrás - Hace 2 dias me aventure en
30 semanas 5 días atrás - hola me interesa utilizar
30 semanas 6 días atrás - s una total pena que una
31 semanas 3 horas atrás - Que tal Alexis. Llego con una
31 semanas 8 horas atrás - hola ,yo tengo el servicio de
31 semanas 1 día atrás - Pues a mi me da mas problemas
31 semanas 2 días atrás
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?
Artículos relacionados
Te recomiendo visitar
- Maestros del Web
- Dupermag
- Nudonation
- Alojamiento web Servicios de alojamiento web y registro de dominios para pymes y particulares.


Participa en la discusión
Javascript y números octales
Tienes razón, eso está en la documentación y no es un bug, no quise decir que lo fuera, pero a muchos se nos puede pasar y es importante recordarlo.
Gracias por el comentario. Saludos.
Alexis Bellido
Muchas gracias por la
Muchas gracias por la aclaración. Ya estabamos pensando que el javascript era una mierda. Y resulta que es una auténtica mierda.
Gracias a ti, sabemos como rebuscar dentro de la basura.
Como simple usuario, solo
Como simple usuario, solo decir que hace 8 y 10 años navegaba tan feliz con IE, Opera, Mozilla o lo fuera.
Ahora cada vez más el 50% del tiempo me trago errores de Javascrpit en webs que creo podrian haberse diseñado en su totalidad sin Javascript y de hecho antes no lo tenian.
Gracias!!!! me estaba
Gracias!!!! me estaba volviendo loca!!!!!
Jajaja, muchas gracias compañer@
Pues a mí me has ahorrado
Pues a mí me has ahorrado horas de dolor de cabeza, aunque la solución cutre está a la mano, no? pones algo del tipo:
if (num='08') num_int=8;
else if (num='09') num_int=9;
else num_int=parseInt(num);
Pero en fin... como decía alguien por ahí VAYA MIERDA con el javascript. ¿En qué proporción se usan números en base octal frente a base decimal?! qué increíble...
Aunque esté anotado en la documentación... no es justificación para hacerlo así. Bueno, la prueba es que es el primer lenguaje de programación que conozco que la función hómologa ("pasar a entero") trabaja con base octal por defecto... al menos de "alto nivel". En fin... ;)
Gracias maestro.
SERGI
Muchas gracias por la
Muchas gracias por la explicación. Había llegado a detectar el error, pero desconocia el por qué pasaba y como podría solucionarlo.
Gracias y sigue así.
Muy buena explicación. Para
Muy buena explicación. Para comprobar que todo lo insolito que sucede en la programación tiene una explicación... ya me parecía que tenía que haber una respuesta sensata a algo tan absurdo, parecía como ver un 2 en el sistema binario.
De paso, estaba usando parseFloat('08') --> 8, idem para el 09....
Saludos
David y Carlos: O sea que,
David y Carlos:
O sea que, cuando sea que vuestro IQ (CI) no dé lo suficiente para comprender una razón inteligente para algo, entonces es una mierda. Bien, me parece razonable - bajo ese esquema de IQ, claro está.