La definición de funciones de JavaScript tiene una función, que primero escaneará toda la instrucción del cuerpo de funciones y "actualizar" todas las variables declaradas en la parte superior de la función:
'Usar Strict'; function foo () {var x = 'hola', + y; alerta (x); var y = 'bob';} foo ();Aunque es el modo estricto, la declaración var x = 'hola', + y; No informa un error, porque la variable Y se declara más adelante. Pero la alerta muestra hola, indefinido, lo que indica que el valor de la variable y está indefinido. Esto se debe precisamente a que el motor JavaScript mejora automáticamente la declaración de variable y, pero no aumenta la asignación de la variable y.
Para la función foo () anterior, el código visto por el motor JavaScript es equivalente a:
función foo () {var y; // Declaración de elevación de variable y var x = 'hola', + y; alerta (x); y = 'bob';}Debido a esta extraña "característica" de JavaScript, cuando definimos variables dentro de una función, por favor, por favor, respete estrictamente la regla "para declarar todas las variables primero dentro de una función". La forma más común es usar un VAR para declarar todas las variables utilizadas internamente en la función:
función foo () {var x = 1, // x se inicializa a 1 y = x + 1, // y se inicializa a 2 z, i; // z y yo están indefinidos // otras declaraciones: para (i = 0; i <100; i ++) {...}}El artículo anterior sobre la mejora de la comprensión profunda de las variables JS es todo el contenido que comparto con ustedes. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.