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)
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.