12k
All articles

Cómo convertir una cadena a un entero en JavaScript

parseInt, Number y el operador unario permiten convertir cadenas a enteros en JavaScript, cada uno con distinto comportamiento ante entradas no válidas.

OpenReplay Team
OpenReplay Team
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

¿Qué sucede si la cadena está vacía?

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

¿Pueden estos métodos manejar números de punto flotante?

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

¿Cuál es la diferencia entre `parseInt()` y `Number()`?

`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

We use cookies to improve your experience. By using our site, you accept cookies.