Todos los definidos fuera del cuerpo de la función son variables globales, y las definidas dentro del cuerpo de la función son variables locales. La definición aquí se refiere a la declaración de Var.
JavaScript tiene un concepto global implícito, lo que significa que cualquier variable que no declare se convertirá en una propiedad de objeto global. Por ejemplo:
La copia del código es la siguiente:
función test () {
myname = "Huming";
alerta (myname);
}
prueba(); // "Huming"
alerta (myname); // "Huming"
Los dos resultados son los mismos, lo que indica que MyName es una variable global.
Entonces, ¿hay alguna diferencia entre las variables globales implícitas y las variables globales bien definidas? . Debe haber una respuesta, vea el siguiente ejemplo:
La copia del código es la siguiente:
// Defina tres variables globales
var global_test1 = 1;
global_test2 = 2; // libro de texto negativo
(función () {
global_test3 = 3; // libro de texto negativo
} ());
// Intenta eliminar
eliminar global_test1; // FALSO
eliminar global_test2; // verdadero
eliminar global_test3; // verdadero
// Prueba la eliminación
alerta (typeof global_test1); // "número"
alerta (typeof global_test2); // "indefinido"
alerta (typeof global_test3); // "indefinido"
Del ejemplo anterior, podemos ver que Global_Test1 definido por VAR fuera de la función no se puede eliminar, mientras que Global_Test2 y Global_Test3 no definidos por VAR están eliminados (ya sea que se creó en el cuerpo de la función o no).
En resumen, las variables globales declaradas por VAR fuera de la función no se pueden eliminar, mientras que se pueden eliminar las variables globales implícitas.
Nota aquí: JavaScript tiene un comportamiento llamado "elevación" (colgar/dejar de analizar/preparar).
Usemos un ejemplo para ilustrar:
La copia del código es la siguiente:
var myname = "Huming"; // declarar variables globales
función test () {
alerta (myname);
var myname = "local_huming";
alerta (myname);
}
prueba();
¿Supongo que el contenido de alerta es constante dos veces? ? Obviamente inconsistente, ¿es necesario decir esa consistencia? . La salida real es: "indefinido", "local_huming".
El ejemplo anterior es equivalente a
La copia del código es la siguiente:
var myname = "Huming"; // declarar variables globales
función test () {
var myname;
alerta (maname); <br> myname = "local_huming";
alerta (myname); // "local"
}
prueba();
El primer nombre de salida de alerta no es la variable global que cree, sino la variable local dentro de un alcance (un cuerpo de función). Aunque no se ha declarado, se ha considerado como una declaración. Esto es lo que se llama "elevación".
Esto debería entenderse. Si usa una variable en el cuerpo de la función y la redeclaró más tarde, puede ocurrir un error.
Especificaciones de escritura:
La copia del código es la siguiente:
función test () {
var a = 1,
b = 2,
c = a + b,
d = {},
mi,
F;
// Función de cuerpo ...
}
Los beneficios son:
1. Todas las variables locales se definen al comienzo de la función, que es conveniente para buscar;
2. Evite que se utilicen errores lógicos antes de definir la variable.
¿Has entendido la Declaración Variable de JavaScript? El contenido anterior es muy detallado y fácil de entender. El resumen final también es muy pertinente. No te lo pierdas.