Back

Cómo convertir una cadena a un entero en JavaScript

Cómo convertir una cadena a un entero en JavaScript

La conversión de una cadena a un entero es una tarea común en JavaScript. Ya sea que esté procesando la entrada del usuario o trabajando con datos de APIs, JavaScript proporciona varios métodos fáciles de usar para esta conversión. Esta guía cubre tres formas confiables de convertir cadenas en enteros.

Puntos clave

  • Use parseInt() para conversiones flexibles con especificación opcional de base.
  • Use Number() para una conversión directa de cadena a entero.
  • Maneje entradas inválidas para evitar resultados inesperados.

1. Usando parseInt()

La función parseInt() analiza una cadena y devuelve un entero. También permite especificar el sistema numérico (base) para la conversión.

const str = ""42"";
const number = parseInt(str, 10);
console.log(number); // Output: 42

Detalles clave

  • El segundo argumento, 10, especifica la base (base 10). Inclúyalo siempre para evitar comportamientos inesperados con números no decimales.
  • Si la cadena comienza con caracteres no numéricos, parseInt() los ignora hasta que encuentra números:
   parseInt(""42abc"", 10); // Output: 42
   parseInt(""abc42"", 10); // Output: NaN

2. Usando Number()

La función Number() convierte toda la cadena en un número. A diferencia de parseInt(), no ignora los caracteres no numéricos y falla si la cadena contiene datos inválidos.

const str = ""42"";
const number = Number(str);
console.log(number); // Output: 42

Detalles clave

  • Devuelve NaN si la cadena contiene caracteres inválidos:
   Number(""42abc""); // Output: NaN
  • Funciona mejor cuando la cadena es estrictamente numérica.

3. Usando el operador unario +

El operador unario + es una forma abreviada de convertir una cadena en un número. Es conciso y funciona como la función Number().

const str = ""42"";
const number = +str;
console.log(number); // Output: 42

Detalles clave

  • Al igual que Number(), convierte toda la cadena y devuelve NaN para entradas inválidas:
   +""42abc""; // Output: NaN

Manejo de entradas inválidas

Para evitar resultados inesperados, siempre verifique si la conversión es válida usando isNaN():

const str = ""42abc"";
const number = parseInt(str, 10);

if (isNaN(number)) {
  console.log(""Número inválido"");
} else {
  console.log(""Número válido:"", number);
}

Conclusión

Convertir una cadena en un entero en JavaScript es simple con parseInt(), Number() o el operador unario +. Elija el método que se ajuste a su caso de uso y siempre maneje las entradas inválidas para garantizar resultados confiables.

Preguntas frecuentes

Para `parseInt()` y `Number()`, una cadena vacía devolverá `NaN`. Siempre valide la entrada antes de la conversión.

`parseInt()` trunca la parte decimal, mientras que `Number()` y `+` manejan directamente los números de punto flotante.

`parseInt()` deja de analizar cuando encuentra caracteres inválidos, mientras que `Number()` falla completamente si la cadena no es totalmente numérica.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers