Junior
Comment convertir une chaîne en nombre en JavaScript?
sobes.tech IA
Réponse de l'IA
En JavaScript, la conversion de cadenas en números se puede realizar de varias maneras:
-
Conversiones implícitas de tipos:
- Operadores matemáticos: por ejemplo, el signo más unario
+o la resta-.
// Conversión implícita con el signo más unario let str = "123"; let num = +str; // num = 123 (número)- Operaciones aritméticas: al usar operadores aritméticos, JavaScript intentará convertir los operandos en números.
// Conversión implícita con resta let str1 = "10"; let str2 = "5"; let result = str1 - str2; // result = 5 (número) - Operadores matemáticos: por ejemplo, el signo más unario
-
Conversiones explícitas de tipos:
parseInt(string, radix): Convierte una cadena en un entero. Se recomienda especificar el segundo argumentoradix(base del sistema numérico) para evitar comportamientos inesperados.
// Conversión explícita con parseInt let strInt = "42px"; let numInt = parseInt(strInt, 10); // numInt = 42 (entero) let strBinary = "101"; let numBinary = parseInt(strBinary, 2); // numBinary = 5 (entero)parseFloat(string): Convierte una cadena en un número de punto flotante. Analiza la cadena hasta el primer carácter no numérico o punto.
// Conversión explícita con parseFloat let strFloat = "3.14abc"; let numFloat = parseFloat(strFloat); // numFloat = 3.14 (número de punto flotante)Number(value): Convierte cualquier valor en un número. Es un enfoque más estricto en comparación conparseIntyparseFloat. Si la cadena no puede convertirse completamente en un número, devuelveNaN.
// Conversión explícita con Number let strNum = "123.45"; let numFromNumber = Number(strNum); // numFromNumber = 123.45 (número) let strInvalid = "hello"; let numInvalid = Number(strInvalid); // numInvalid = NaN
Diferencias y características:
| Método | Descripción | Devuelve NaN con cadena no válida | Analiza desde el principio hasta el primer no número |
|---|---|---|---|
+string |
Conversión implícita con el signo más unario. | NaN |
No (toda la cadena) |
string - 0 |
Conversión implícita con resta. | NaN |
No (toda la cadena) |
parseInt() |
Analiza un entero. | NaN |
Sí |
parseFloat() |
Analiza un número de punto flotante. | NaN |
Sí |
Number() |
Conversión explícita. Más estricta. | NaN |
No (toda la cadena) |
La elección del método depende de la tarea específica y del formato esperado de la cadena de entrada. Number() es preferido para convertir cadenas que representan números enteros o decimales sin caracteres adicionales. parseInt() y parseFloat() son útiles para extraer valores numéricos de cadenas que contienen símbolos adicionales (por ejemplo, unidades de medida). La conversión implícita debe usarse con precaución, entendiendo su comportamiento.