Aquí podría ser tu PUBLICIDAD


Número y cadena JavaScript declaración

votos
0

Trato de entender que cómo puedo conseguir una verdadera lógica en el siguiente código JavaScript:

var x = 10;
var y = 20;
var result = x + y;
document.getElementById(demo).innerHTML = result;

link: https://www.w3schools.com/js/tryit.asp?filename=tryjs_numbers_add_strings4

La salida del código siguiente es = 1020 en funcionamiento adición. En mi mente yo creo que es correcto porque es la concatenación de dos números como una cadena.

var x = 100;
var y = 10;
var z = x / y;   
document.getElementById(demo).innerHTML = z;

link: https://www.w3schools.com/js/tryit.asp?filename=tryjs_numbers_string1

Pero la salida del código siguiente es = 10 en funcionamiento División y que es no puede contar con este número dos como una cadena. Se calculó el número dos como número. **** Por favor, que alguien me ayude a que seré entender con claridad. ****

Publicado el 02/09/2018 a las 05:05
fuente por usuario Obayedul Islam
En otros idiomas...        العربية       

5 respuestas

votos
0

JavaScript es un lenguaje escrito débilmente. Esto significa que podemos hacer matemáticas con cadenas, (por ejemplo "100" / "10" === 10) y JavaScript se da cuenta de forma automática se debe interpretar esas cadenas como números.

Pero entonces ¿por qué no es "10" + "20"igual a 30?

JavaScript (tal vez poco) decide utilizar el mismo operador ( +) para la concatenación de cadenas, así como la adición. Esto quiere decir que tenían que decidir si las cadenas de números como deben interpretarse como cadenas o como números en este caso, y la concatenación de cadenas ganaron. De hecho, incluso "10" + 20e 10 + "20"y 10 + "2" + 0hará todo rendimiento "1020". Si hay una cadena en alguna parte , la concatenación de cadenas gana.

Respondida el 02/09/2018 a las 05:35
fuente por usuario SamVK


Aquí podría ser tu PUBLICIDAD


votos
0
var a  = "1022";            //variable a&b takes a string.
var b = "2";     
var c = a/b;                //a and b are converted to number type implicitly 
                            //because strings have no function with '/'.
document.write(c + "<br>"); //prints division between a and b (a/b).
c = toString();             //converts c to string explicitly.
document.write(c);          //shows an error as i said string cant be divided!.

Déjeme saber si ayudé!

Respondida el 02/09/2018 a las 05:31
fuente por usuario levinson dsouza

votos
0

En javascript "+" del operador se trata como operador de concatenación si alguno de los argumentos es la cadena y el operador "/" división sólo tiene "operación de división asociada a ella.

Respondida el 02/09/2018 a las 05:21
fuente por usuario Krishna

votos
0

En JavaScript, operador de división convierte implícitamente cadenas en números y realizar la división Pero para la adición Javascript considera como cadena y realizar la concatenación.

Respondida el 02/09/2018 a las 05:17
fuente por usuario Swati

votos
0

JavaScript hace todo lo posible para darle una respuesta razonable, independientemente de qué tipo de datos que le des. En el primer ejemplo se ve que está solicitando el operador + para dos cuerdas. Esto es una cosa válida para que lo haga (concatenación), por lo que no se realiza ninguna coacción - las dos cadenas se concatenan.

En el segundo ejemplo se ve que está solicitando el operador / a dos cadenas. Esto no es una cosa válida para hacerlo, pero la aplicación de dicho operador que los números sería válido, y las cadenas que dio tanto que puede ser representado como un número, de modo que es lo que hace. Que los convierte en números y luego realiza esta división.

Esta coacción auto puede ser muy conveniente (que no tiene que preocuparse casi tanto acerca de los tipos de JavaScript como en otros idiomas). A veces también puede ser un poco peligroso, ya que puede dar resultados que no esperas, pero una vez que llegue a entender cómo y cuándo se aplica la coerción, el peligro disminuye un poco.

Respondida el 02/09/2018 a las 05:17
fuente por usuario Steven W. Klassen