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.

Top comments (2)

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!

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?