En JavaScript, VAR se usa para declarar variables, pero esta sintaxis no es estrictamente necesaria. Muchas veces, podemos usar directamente una variable sin usar VAR para declararlo.
La copia del código es la siguiente:
var x = "xx";
y = "xxx";
Etcétera. Hay un problema con esto. Por ejemplo, en una línea en el código, quiero usar una variable declarada x. Como resultado, debido a los errores de escritura o ortografía, esta variable se escribe como y. El resultado es equivalente a una declaración "implícita" de una variable y. En la programación real, este error a veces es difícil de detectar.
Cuando realiza esta declaración "implícita" en el contexto actual, el motor JavaScript primero buscará si esta variable se ha declarado antes en el contexto actual. Si no, entonces busque en el nivel anterior de contexto. Si no se ha encontrado, ¡finalmente declarará esta variable en la ventana!
Por ejemplo:
El código es el siguiente:
ventana. y = "hola"; función func () {y = "oh, no !!!"; } func (); alerta (Window.y); //#=> Pantalla "¡Oh, no!"Cuando cualquier capa en el contexto tiene una definición tan "implícita" de variable, la variable de esa capa se modificará sin generar una nueva variable en la ventana. (Este tipo de error es bastante molesto, especialmente el código más complejo encapsulado)
Por ejemplo:
El código es el siguiente:
var x = "window.x"; función a () {var x = "a's x"; var b = function () {var c = function () {// ¡No var! x = "C's X:"; }; alerta ("Antes de C ejecución, el bx:" + x); do(); alerta ("Después de C corriendo, el bx:" + x); }; alerta ("Ax es:" + x); b(); alerta ("Después de la ejecución de la función B, el hacha es:" + x); }; alerta ("Antes de ejecutar, Window.x:" + x); a(); alerta ("Después de una ejecución, window.x:" + x);Aquí hay las siguientes capas: ventana, func a, func b, func c siempre está anidada en niveles. ventana-> a-> b-> c
Tanto la ventana como la variable definen X, y B no está definida. Se declara una x en C, que eventualmente modifica el valor de la variable a.
Recuerde, en JavaScript, declare variables, y debe agregar VAR ante él.