variable valor parametros inside funciones dentro como cambiar anidar javascript

valor - Confusión de variable local y global de Javascript



javascript funciones como parametros (2)

En Javascript, las declaraciones de variables se mueven automáticamente a la parte superior de la función. Entonces, el intérprete lo haría ver más como esto:

var myname = "initial" function c(){ var myname; // alerts undefined alert(myname); myname = "changed"; // alerts changed alert(myname); } c();

Esto se llama ''izar''.

Debido al alzamiento y al hecho de que el alcance de cualquier variable es la función en la que está declarado, es una práctica estándar enumerar todas las variables en la parte superior de una función para evitar esta confusión.

Soy nuevo en JavaScript y estaba haciendo algunas prácticas en ámbitos de variables locales y globales, a continuación está mi código ( fiddle ):

var myname = "initial" function c(){ alert(myname); var myname = "changed"; alert(myname); } c();

cuando se llama a la primera alerta, muestra myname como indefinido. entonces mi confusión es por qué no puedo acceder a una instancia global de myname y si no defino myname dentro de la función, funcionará bien.


No es reemplazar la variable global. Lo que está sucediendo se llama "elevación variable". Es decir, var myname; se inserta en la parte superior de la función. Siempre inicialice sus variables antes de usarlas, intente esto:

var myname = "initial"; function c() { alert(myname); myname = "changed"; alert(myname); } c();