Solucionado (ver solución)
Solucionado
(ver solución)
14
respuestas

Suma en lugar de concatenar

Cuando coloco en Sublime la función document.write("25"+"15"), el compilador me realiza la suma. Cristian dijo en el video que realizaria una concatención, pero a mi me realiza la suma.

tengo algo mal configurado....?

14 respuestas

Que extrano, a mi no me sucede. Has probado con otros valores?, si quieres puedes compartir tu codigo para verificar.

Hola jonatan, como te aparece en la pantalla? porque yo hice eso y me lo concatena a los números, porque esta sumando dos textos

Hola Yanina y Tomas.

Muchas gracias por responder sobre mi inquietud, apenas llegue a mi casa les envio imágen y código para que lo podamos revisar.

Hola Jonatan, puedes añadir una captura del código?. Un saludo

Buenas tardes a todos,

Les adjunto la captura de pantalla.

Note al volver a realizarlo que al tener comillas y que tenga una operacion diferente a la suma si toma la cadena de texto como numeros.

solución!

Hola Jonatan, el símbolo ( + ) en JS sirve para concatenar y para sumar. Si le digo que sume dos strings númericos "2022"+"33", no lo hará el programa los reconocerá como cadenas y por tanto los concatenará. Ahora bien, si le digo que reste dos strings númericos "2022"-"33" lo hará a pesar de ser cadenas, ambos son compatibles y por tanto los reconocera como números. La operación ( - ) solo está definida para restar, al igual que la operación multiplicar y dividir. Lo que quiero decir es que si el símbolo ( + ) no estaría predefinido para concatener al hacer "2022" + "33" daría 2055 y no 202233.

Por eso, si quieres sumar dos strings númericos deberas convertirlos a entero o flotante. Además no se puede operar algo como "2M22" - "33" habrá conflicto de compatibilidad y el resultado será NaN (Not a Number).

El siguiente código demuestra lo anteriormente explicado:

<script>
   var a = 5;
    var b = 6;
    document.write("1" + a + b);
</script>

Aunque todos son compatibles, todo se concatenará dado que ( + ) está predefinido para esa función.

Tal cual como dice Luis, podrias escribirlo

// Opcion A
function suma() {
  document.write("25 - 15");
}

suma();

// Opcion B
function suma() {
  document.write("25" + " - 15");
}

suma();

// Opcion C
function suma() {
  document.write("25" + " - " + "15");
}

suma();

segun tu preferencia/necesidad.

Saludos!

Tenía la misma duda y si bien me di cuenta de que al poner restar si hacía la operación y supuse que solo el signo mas concatenaba no sabía la explicación... Que explico Luis..

Buenos dias

Muchas gracias a todos por sus correcciones e información, me quedo totalmente claro el tema.

@Luis, muchas gracias por esa explicación, de verdad, fue muy instructivo tu ejemplo.

Excelente explicación Luis David!

Puse el código en la consola de freeCodeCamp, y me arrojó 9, porque? Puse el código en la consola de freeCodeCamp, y me arrojó 9, porque? Gracias!

Me uno a los agradecimientos. Realice las observaciones planteadas y aclaré las inquietudes que me surgieron. Muchas gracias.

excelente, muchas gracias, tenia la misma inquietud realicé el mismo procedimiento y obtuve el mismo resultado, pero ahora viendo la respuesta que comparte nuestro compañero, me quedo clara la respuesta. muchas gracias.

Si los dos números están entre comillas "": Si multiplicas, multiplicas; Si divide, divides; Si restas, restas; Si sumas, concatenas.

el ( + ) esta definido para concatenar.