Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Duda al comparar códigos

Buen día, en esta clase vimos cómo convertir strings a números enteros, sin embargo, en el curso anterior, específicamente en el ejercicio del cálculo de IMC, se emplearon prompts para recibir input numérico del usuario y aún así se lograron hacer operaciones matemáticas, ¿alguien sabe por qué es que no nos hizo una concatenación rara en vez de imprimir el resultado correcto? Mi teoría es porque usamos una función objetiva con la sentencia "return"

3 respuestas
solución!

Mira lo que sucede es que JavaScript nos ayuda en este tipo de casos tratando de intuir que es lo que queremos hacer con nuestros datos. Cuando calculamos el IMC solo realizamos operaciones de multiplicación y división por eso no tuvimos problemas, pero si hubiéramos realizado sumas nuestro resultado hubiera sido una concatenación

Cuando los números que nos da el usuario en realidad son string (como en el caso de que no usemos parseInt), tenemos 2 casos:

Operador de suma (+) El operador de suma (+) nos sirve en strings para concatenar, pero también en operaciones matemáticas para sumar, entonces cuando tenemos un número como string y lo sumamos a un número que si es número, nos da como resultado una concatenación, por esa doble funcionalidad del operador (+)

Operador de multiplicación (*) En este caso el operador (*) solo tiene una función que es la de multiplicar, entonces aquí es donde JavaScript intuye que aunque tengamos un número como string lo que queremos es realizar un operación matemática y nos da como resultado un número. esto aplica también para la división (/).

Mira estos ejemplos:

5 + "5" = 55

5 * "5" = 25

5 + 5 = 10

"10" / 2 = 5

"10" * "10" = 100

"10" + "10" = 1010

10 + 10 = 20

Rodrigo Adrian Medellín Flores, muchas gracias por tu aporte, tenia la misma duda.

Excelente respuesta, Rodrigo, detallada y simple de comprender, muchísimas gracias y lindo día!