DEV Community

Cristian Fernando
Cristian Fernando

Posted on

4 formas de convertir strings a numbers en JavaScript

1. Objeto Number

console.log(typeof(Number("25"))); //number
Enter fullscreen mode Exit fullscreen mode

2. parseInt

console.log(typeof(parseInt("25",10))); //number
Enter fullscreen mode Exit fullscreen mode

3. Operador +

console.log(typeof(+"25")); //number
Enter fullscreen mode Exit fullscreen mode

4. Hack: restando 0

console.log(typeof("25" - 0)); //number
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Conclusiones

Para llegar a Roma existe más de un camino.

Oldest comments (2)

Collapse
 
ediardo profile image
Eddie Ramirez • Edited

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?

Collapse
 
jfernandogt profile image
Fernando Barrios - jfergt • Edited

Hola Cristian, un pequeño tip, parseInt funciona también con cadenas "no válidas" (nótese las comillas). Por ejemplo si intentas console.log(parseInt("25rr", 10)); el output será 25 y es porque parseInt 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 de Number 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ás 200, mientras que en parseInt sería un 2.

Saludos desde Guatemala!