Conversión a entero con JavaScript parseInt() [Ejemplos]

Este artículo le mostrará cómo usar el parseInt() función en el lenguaje de programación JavaScript.

JavaScript es notoriamente poco tipificado, lo que significa que las variables de un tipo (por ejemplo, cadenas de texto, valores numéricos, valores booleanos) se convierten en otros, lo que le permite realizar operaciones matemáticas en cadenas y cosas tontas como esa.

Esto causa todo tipo de problemas:las cadenas que contienen números pueden no analizarse al valor esperado y, de repente, tiene clientes enojados que se preguntan por qué su nueva y brillante aplicación de conteo de widgets informa la cantidad incorrecta de widgets.

JavaScript parseInt() La función convertirá un valor de tipo de cadena en un valor de tipo entero, lo que le permitirá especificar el formato de la cadena que se analizará para ayudarlo a asegurarse de que solo está realizando operaciones matemáticas con variables numéricas.

TLDR:JavaScript le permite realizar operaciones matemáticas en cadenas que contienen valores numéricos. Por favor, no lo hagas; es una mala idea.

JavaScript parseInt() Sintaxis

El parseInt() La función analiza el primer argumento en un valor entero, con una base opcional, y tiene la siguiente sintaxis:

parseInt(STRING [, RADIX])

Tenga en cuenta que:

  • CADENA es la cadena que desea leer y analizar a un valor entero
    • Si el valor pasado no es una cadena, se convertirá en uno (esto tiene efectos secundarios para algunos tipos de variables como BigInt – visto a continuación)
  • RADIO es un valor de base opcional, que por defecto es 10
    • La raíz es la base del sistema numérico:el número de dígitos únicos en el sistema
      • Entonces, la base del sistema numérico que usamos para contar cosas cotidianas es 10, ya que tiene 10 caracteres únicos (0-9)
      • Una base de 8 analizará valores octales, 7 valores hexadecimales, 2 valores binarios, etc.
    • Se utiliza para determinar cómo STRING será analizado
  • La función devolverá un enteroNaN
    • NaN es un valor especial que significa No es un número
    • Significa que un valor que debería ser un número no se puede analizar como un número
    • Cualquier operación matemática entre cualquier otro valor y NaN dará como resultado NaN
    • Por lo general, significa que algo salió mal con un análisis numérico o una operación matemática y que necesita verificar su código o manejar la entrada de manera diferente
  • Hay algunas situaciones especiales en las que parseInt() se comportará de manera diferente a lo que puede esperar:
    • Si se encuentra un carácter no numérico, ese carácter y todo lo que le sigue se ignoran al analizar el número
      • Por lo tanto, los números con e se usa para indicar un exponente o valores BigInt que usan el carácter n NO se debe dar a parseInt() ya que se devolverá el valor incorrecto
      • + y – los símbolos son una excepción a esto
    • Si el RADIX proporcionado no es numérico o no se puede analizar como un número, se hará la siguiente suposición
      • Si STRING comienza con 0x0X, se supondrá que la raíz es 16
      • De lo contrario, se asumirá que es 10

Ejemplos de parseInt()

Todos estos ejemplos devuelven 15 :

parseInt(15)
parseInt('015')    
parseInt(15.99)
parseInt('15,123')
parseInt('FXX123', 16)
parseInt('1111', 2)
parseInt('15 * 3')
parseInt('15px')

Estos ejemplos devuelven NaN – un valor especial que significa No es un número :

parseInt('Hello Linux', 8)  
parseInt('867', 2)    // Invalid as digits other than 0 or 1 are invalid for a binary radix (2)

Como parseInt() solo analiza los valores numéricos en una cadena, los valores BigInt pierden precisión y se convierten en números enteros (ya que tienen una n carácter al final de su formato de número).

Esto se debe a que BigInt se convierte en una cadena para analizar, seguida de n el carácter se ignora porque no es numérico:

parseInt('1958764527465896583n') // Returns 1958764527465896583

Del mismo modo, esto muestra cómo parseInt() ignorará los caracteres no numéricos y todo lo que esté detrás de ellos. :

parseInt('987_321')  // Returns 987

La documentación completa de Mozilla describe aún más formas de usar la función y lo que hace cuando se le presentan diferentes tipos de entrada y diferentes valores de radix.