Función parseInt()‎ en JavaScript

Función parseInt()‎‎ en JavaScript

La función parseInt()‎ en javascript interpreta una cadena que se le pasa como un argumento y devuelve un número entero, el valor numérico de esa cadena está en la base dada.

Características generales

La función parseInt convierte el primer argumento en una cadena y luego lo interpreta y devuelve un número entero o valor NaN, si el valor devuelto no NaNes ese, entonces el valor devuelto es el número entero en la cadena pasada como primer argumento y contado como el escalar base pasado como el segundo argumento (base). 

Por ejemplo, si el valor de la base es 10, esto indica que el número en la cadena de texto es un número en el sistema decimal, el valor 8 es un número en el sistema octal, 16 está en el sistema hexadecimal y así sucesivamente envalentonado. Tenga en cuenta que el alfabeto se referirá a números mayores que 9 si la base de la raíz es mayor que 10; Por ejemplo, en hexadecimal (base 16) caracteres se pueden utilizar Apara F.

Si la función parseInt()‎ en javascript encuentra un carácter que no tiene una representación numérica en la base dada, lo ignorará y el epílogo y devolverá el valor numérico prefijado. Tenga en cuenta que la función parseInt solo devuelve números enteros y se permiten espacios al principio y al final de la cadena.

Debido a que el tipo de letra está presente en algunos números cuando se representa como una cadena de texto (como 6.022e23), el uso de la función parseInt truncará los valores numéricos y dará lugar a resultados inesperados al usar la función en números muy grandes o muy pequeños. Es posible que la función parseInt no utilizarse como sustituto de la función Math.floor()‎.

Si el valor base radixes undefined OR 0(o no se especifica), JavaScript asumirá lo siguiente:

  • Si la cadena comienza con la string cadena 0x0X, un valor radix se 16 cuenta cómo (es decir, el número en hexadecimal).
  • La cadena comienza con un string número 0, puede ser un valor de radix 8 (octal) o 10 (decimal), y el valor base ( radix) utilizado sigue el script JavaScript. Tenga en cuenta que el estándar ECMAScript 5 dice que se debe usar decimal (10), pero esto aún no se ha implementado en todos los navegadores, por lo que el valor base siempre debe especificarse cuando se usa parseInt.
  • Si la cadena string comienza con cualquier otro valor, la base se cuenta como 10.

Si la función parseInt()‎ en javascript no puede convertir el primer carácter en un número, se devuelve el valor NaN. El valor NaNno representa un número en ningún sistema numérico, puede llamar a la función isNaN para ver si la salida de la función parseInt es NaN. Recuerde que los valores NaN cuando se usan en operaciones matemáticas darán como resultado un retorno completo de la expresión NaN.

Para convertir un valor numérico en una cadena en un sistema de enumeración específico, use el intValue.toString(radix)‎.

Estructura parseInt() javascript

parseInt(string, radix);

string

El valor a interpretar, si el argumento string no es una cadena se convertirá en uno (usando la función toString), y se descartarán los espacios al principio y al final de la cadena.

radix

Un número entero entre 2 y 36 que es la base del valor numérico contenido en la cadena de texto. Para usar el sistema decimal, comúnmente usado por humanos, establezca el valor 10. Intente siempre especificar el valor de este parámetro para evitar confusiones y hacer que la función sea más fácil de entender para el lector.

Valor a devolver

Un número entero resultante de la interpretación de la cadena dada. Si el primer carácter de la cadena no se puede interpretar como un número, se devuelve el valor NaN.

Ejemplos y aplicaciones en código

Usar parseInt(), todos los siguientes ejemplos devolverán el valor 15:

parseInt(' 0xF', 16);
parseInt(' F', 16);
parseInt('17', 8);
parseInt(021, 8);
parseInt('015', 10);
parseInt(15.99, 10);
parseInt('15,123', 10);
parseInt('FXX123', 16);
parseInt('1111', 2);
parseInt('15 * 3', 10);
parseInt('15e2', 10);
parseInt('15px', 10);
parseInt('12', 13);

Se repetirán los siguientes ejemplos NaN:

parseInt('Hello', 8); // este valor nunca es numérico 
parseInt('546', 2);   // No todos los números se pueden usar en binario

Los siguientes ejemplos devolverán el valor ‎-15:

parseInt('-F', 16);
parseInt('-0F', 16);
parseInt('-0XF', 16);
parseInt(-15.1, 10)
parseInt(' -17', 8);
parseInt(' -15', 10);
parseInt('-1111', 2);
parseInt('-15e1', 10);
parseInt('-12', 13);

Esto es de lo que hablamos anteriormente sobre la estimación de valores de error para números muy grandes y muy pequeños. El resultado de todos los ejemplos siguientes es 4:

parseInt(4.7, 10);
parseInt(4.7 * 1e22, 10); // demasiados 
parseInt(0.00000000000434, 10); // número muy pequeño

La función de interpretación sigue reglas más estrictas

A veces es útil tener una función que interprete cadenas como números enteros pero con reglas más estrictas. Las expresiones regulares pueden ayudar aquí:

var filterInt = function(value) {
  if (/^(\-|\+)?([0-9]+|Infinity)$/.test(value))
    return Number(value);
  return NaN;
}

console.log(filterInt('421'));               // 421
console.log(filterInt('-421'));              // -421
console.log(filterInt('+421'));              // 421
console.log(filterInt('Infinity'));          // Infinity
console.log(filterInt('421e+0'));            // NaN
console.log(filterInt('421hop'));            // NaN
console.log(filterInt('hop1.61803398875'));  // NaN
console.log(filterInt('1.61803398875'));     // NaN

Soporte de navegadores

CaracterísticaChromeFirefoxIEÓperaSafari
Soporte básico