1. Objeto Number
console.log(typeof(Number("25"))); //number
2. parseInt
console.log(typeof(parseInt("25",10))); //number
3. Operador +
console.log(typeof(+"25")); //number
4. Hack: restando 0
console.log(typeof("25" - 0)); //number
Todos los ejemplos solo funcionan con cadenas validas, si intentamos convertir cadenas no validas obtendremos en todos los casos un NaN
:
console.log(Number("25xw")); //NaN
console.log(parseInt("rr25", 10)); //NaN
console.log(+"25ccs"); //NaN
console.log("25EE" - 0); //NaN
Conclusiones
Para llegar a Roma existe más de un camino.
Top comments (2)
Hola Cristian, un pequeño tip,
parseInt
funciona también con cadenas "no válidas" (nótese las comillas). Por ejemplo si intentasconsole.log(parseInt("25rr", 10));
el output será25
y es porqueparseInt
empieza a parsear hasta que la cadena deja de ser válida. Esta es una razón por la que siempre he recomendado el uso deNumber
en aplicaciones que manejan dinero.La otra diferencia es que recuerda que Number al intentar parse todo un número, podrá convertir
Number("2e2")
como salida tendrás200
, mientras que enparseInt
sería un2
.Saludos desde Guatemala!
Hola Cristian,
Soy fan de este contenido. Confieso que muchas ocasiones me tomó largo tiempo entender bien lo que hace el código.
Por la misma razón, desarrollé una extensión para navegador que explica código con inteligencia artificial. Se llama ExplainDev (explain.dev/), ¿te gustaría probarla?