Fenómeno:
1. En JavaScript, la declaración de variables y funciones se promoverá a la ejecución superior.
2. La mejora de la función es mayor que la mejora de las variables.
3. Si se declara una variable externa con el mismo nombre dentro de la función con VAR, la función ya no mirará hacia arriba.
4. Las funciones anónimas no serán promovidas.
5. Las funciones en diferentes bloques <script> no se afectan entre sí.
ejemplo:
Promoción de la declaración de función superior a la declaración variable
// Declarar la variable A y la función Avar A; función a () {} alerta (typeof a); // se muestra la "función", que prueba preliminarmente que la prioridad de la función es más alta que VAR. // declara la función primero y luego declara la variable, demostrando que el ejemplo anterior no funciona sobrescribe la función variable a () {} var a; alerta (typeOf a); // La pantalla sigue siendo "función", no "indefinida", es decir, la prioridad de la función es mayor que VAR. // declara la variable y asigna la función de valor a () {} var a = 1; alerta (typeof a); // Número, no es una función en este momento. // NOTA: "Var A = 1" es equivalente a "var a; a = 1", es decir, declare primero y luego asigne un valor. "A = 1" es equivalente a reasignar A, ¡que es naturalmente número!La función utiliza VAR para definir la misma variable que el exterior, y la función ya no buscará variables externas hacia arriba.
var value = 'hello'; function show () {alert (valor); if (! value) {var value = 'function'; } alert (valor);} show () // La función se llama aquí y aparece "indefinida", "función" // El ejemplo anterior es equivalente a var value = 'hello'; function show () {Var valor; // Tenga en cuenta esta alerta de línea (valor); if (! value) {value = 'function'; // Esta línea elimina var} alerta (valor);} show () // 1. Si el valor se define internamente en el programa en la columna anterior no usa VAR, se utilizará una variable externa, y "Hello" aparecerá, "Hola". // 2. Si el valor no se define dentro de la función, también se puede obtener el valor de valor exterior.Las funciones anónimas no mejorarán hacia arriba
getName () var getName = function () {alert ('Closule')} function getName () {alert ('function')} getName () // El código anterior es equivalente a function getName () {// La función se plantea alerta ('function')} getName () var getName = function = function () {alerta ') "Función" y "Closule"Las funciones en diferentes bloques <script> no se afectan entre sí
<script> getName () var getName = function () {alert ('closule')} <script> <script> function getName () {alert ('function')} <script> // Error de ejecución de código: typeError: getName no es una función // porque la función getName en el primer <script> bloque no está definido, la función anónima no será promotada uprawardsLa breve discusión anterior sobre la mejora de las variables y las declaraciones de funciones en JavaScript es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.