Acerca de Scriptia
Scriptia forma parte del PDM de Choan C. Gálvez, desarrollador web residente en Barcelona. Scriptia pretende mejorar la calidad de la documentación acerca de javascript disponible en español.
Saltar a Anotaciones relacionadas
La función `parseInt` extrae un número entero de una cadena dada. Analiza la cadena desde la izquierda, ignorando los espacios, y se detiene en el momento en que encuentra un carácter no numérico. (Un menos al comienzo de la cadena se acepta como animal de compañía.)
parseInt(' 23'); // 23
parseInt('-23'); // -23
parseInt('23 cositas'); // 23
Si pasamos dos parámetros, el segundo de ellos indica la _base_ que utilizamos en la conversión de la cadena:
parseInt('23', 10); // 23
parseInt('23', 16); // 35
parseInt('23', 8); // 19
Ojo: aunque si omitimos el segundo parámetro se utilizará por defecto la base 10 para realizar la conversión, el estándar ECMAScript v3 autoriza a las implementaciones del lenguaje a trabajar de manera especial en los siguientes casos:
* si la cadena comienza con el prefijo ‘0′, la conversión se realiza usando base 8 (octal);
* si la cadean comienza con el prefijo ‘0x’, la conversión se realiza usando base 16 (hexadecimal).
Así pues, evitaremos errores desagradables si siempre usamos:
parseInt('08024', 10);
Sobre todo al convertir en entero el código postal de mi barrio.
Scriptia forma parte del PDM de Choan C. Gálvez, desarrollador web residente en Barcelona. Scriptia pretende mejorar la calidad de la documentación acerca de javascript disponible en español.
2 comentarios RSS
1 erin (2008-03-30 @ 8:35 pm):
como se invierte un parseInt, cual seria la funcion inversa si aplico base 16 p ejemplo para que vuelva a la base que tenia?¿
2 erin (2008-03-30 @ 9:33 pm):
como has tardado tanto en contestarme me he creado mi propia funcion inversa, no se si ya existia en javascript, la pongo por si alguien la necesita
function CambioBase(n, base) {
var _n = parseInt(n);
var _base = parseInt(base);
if (n < base) return n;
return CambioBase(parseInt(n / _base), base) * 10 + (n % _base);
}