elem = document.getElementById("demo"); elem.innerHTML = x;POR QUÉ NO PUEDO ESCRIBIR EL CÓDIGO ARRIBA ASÍ:
elem = document.getElementById("demo").innerHTML; elem = x;Comprender que los nombres de las variables son solo punteros a los datos en la memoria
Si comprende esto, estará muy lejos de comprender que en la parte superior, donde elem es una etiqueta para un HTMLElement, establecerá el HTML interno del elemento. En el elemento inferior hay solo una cadena. Pero más que eso, cuando configura elem en x, solo está configurando un nuevo valor en la etiqueta, no cambiando el elemento.
No són la misma cosa. el primero:
elem = document.getElementById("demo"); elem.innerHTML = x; elem ahora es un objeto, un objeto que hace referencia al Elemento con la ID de demo . en la siguiente línea, está intercambiando el valor actual de innerHTML por el valor de x ;
El segundo:
elem = document.getElementById("demo").innerHTML; elem = x; El elem es una cadena, la cadena HTML que está dentro del ID del elemento de demo ahora se guarda en elem . La segunda línea reemplaza la cadena dentro de elem con el valor de x , sin embargo, el HTML interno del elemento de demo permanece sin cambios.
// stores reference to DOM element #demo elem = document.getElementById("demo"); // changes #demo innerHTML to "x" -- affects the DOM elem.innerHTML = x; // stores #demo content as a string elem = document.getElementById("demo").innerHTML; // changes the string to "x" -- does not affect the DOM elem = x;