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)
6
respuestas

Esto no me queda claro

Según dice en el video: "Vimos que cuando concatenamos un número con un string, con una cadena de texto, nos devuelve una cadena de texto, entonces si concateno un número 20 con una palabra, el resultado final va a ser una cadena de texto."

Sin embargo en un ejemplo que vimos una vez que concatenaba un número con un string luego lo tomaba como número para dividirlo. (no encuentro el ejemplo por eso no lo presento)

6 respuestas

Hola Alejandro,

Quizás lo que tu dices de tomar una string como número te refieres a la función parseInt(), la cual se encarga de convertir el string ingresado por el usuario a número entero.

Mira es que si tu concatenas un string con un numero te va a dar un string (cadena de texto al final), pero si esa cadena de texto es un número y tu lo divides por un numero el resultado va a ser un numero ya que javascript te ayuda a identificar un texto y convertirlo en numero cuando haces una multiplicación o división, por ejemplo:

"1" + 0 = "10" / 2 = 5
"1" + 0 = "10" * 2 = 20

Este resultado es un número.

Podes ir probado por ejemplo asi

<script type="text/javascript">
    document.write("hola soy una cadena de texto " + 4375) // Devuelve una cadena de texto
    document.write("<br>")
    document.write("hola soy una cadena de texto " * 4375) // Devuelve Nan, es decir, no se que soy
    document.write("<br>")
    document.write(342*23) // Devuelve 7866, un numero
    document.write("<br>")
    document.write(342*23 + "hola soy una cadena de texto") //Devuelve una cadena de texto
    document.write("<br>")
    document.write(342*23 + "2") // Devuelve 78682, una cadena de texto
    document.write("<br>")
    document.write(342*23 * "2") // Devuelve 15732, un numero
</script>

En conclusion tenes que tener cuidado con el operador aritmetico que uses, en particular el + sirve para concatenar texto

si usas el + con un string de numero Ej.:"2" siempre te va ha concatenar, pero si usar el * o la / te dara un numero

debido a que el * y el / no concatenan texto sino que operan como operadores aritmeticos

si debes sumar tenes que si o si asegurarte que lo que vallas a sumar sean numeros y no string para eso usan parseInt(string numerico) = numero

Hola, gracias por responder....

según el ejemplo de Hector y mas específicamente en la siguiente línea

document.write(342*23 + "2") // Devuelve 78682, una cadena de texto

tengo claro que el resultado es una cadena de texto; pero, si uso ese resultado (78682) y lo multiplico por 2 el nuevo resultado será un número. Como puede ser si 78682 es un string?? es decir, y según lo dijo Camilo mas arriba, ¿JavaScript lo transforma en un número? `

solución!

Sí, javascript es un lenguaje de tipado débil. ¿Qué significa esto? que nosotros nunca definiremos si lo que está dentro de una variable es un dato de tipo string por ejemplo, y únicamente de tipo string provocando que no pueda ser operado (a menos que llames a la función correspondiente para transformarlo en otro tipo de dato).

Javascript lo que hace es transformar automáticamente las variables según el operador a utilizar.

Lo que pasa es que al utilizar el operador matemático de suma con un número y un string lo que hace javascript es una concatenación, en cambio cuando haces una multiplicación, este mismo internamente transforma tu string en número para poder tratarlo como número y poder multiplicarlo.

En otros lenguajes como C o Java esto no pasa, ya que son de tipado fuerte y somos nosotros quienes debemos definir el tipo de variable (float, int, string, double, etc).

Aquí puedes leer más respecto al tema: https://www.estudioyobo.com/blog/2020/06/tipado-debil-vs-tipado-fuerte/

Ok, ahora sí entiendo, Gracias Benjamín!!!