Cómo convertir una cadena a un entero en JavaScript
![Cómo convertir una cadena a un entero en JavaScript](/images/convert-string-integer-javascript/images/hero.png)
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 devuelveNaN
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.