js var y dejar que el alcance y las cuestiones

aprendizaje ES6 Hoy en día, me di cuenta de la diferencia entre el var y dejar.

Hay unos = [];

for (var i = 0; i <10; i ++) {

   a [i] = funciton () {

       console.log (i);

   };

 }

una [6] (); // 10

for (var i = 0; i <a.length; i ++) {

  a [i] (); // salidas 0-9

}


var a = [];
para (dejo i = 0; i <10; i ++) {
  a [i] = function () {
     console.log (i);
  };
}
A [6] (); // 6

var establecer variables globales. Se almacena en la matriz i apunta a la dirección de memoria, de modo que en el ciclo ha ido cambiando i, en los últimos 10 no se mueve. 

deja que la variable local se establece, la declaración de variables sólo es válida dentro de la acción a nivel de bloque. La variable i sólo es válido en la actual ronda de ciclo, por lo que la matriz se escribe en la actual ronda de i, i de cada ronda es una nueva variable. Se puede ver concreta

http://es6.ruanyifeng.com/#docs/let

Yo mismo soy un ámbito para aprender bien, así que nos registramos la dirección de Internet del alcance js comprensión.

En primer lugar, el alcance de la función interna es

Hay a = 10;

función aaa () {

  console.log (a);
  var a = 20;

}

aaa (); // indefinido

Aquí hay una función del alcance alcance interna y externa, hay dos en conflicto primeros sí selecciona de acuerdo con el principio de proximidad sin definir. Esta es mi propia comprensión, si hay algo incorrecto, por favor me corrija.

Hay a = 10;

función aaa () {

  cosonle.log (a);

  a = 20; // variable global no es var

}

aaa (); // 10


Hay a = 10;

función aaa () {

 var a = 20; // función dentro del alcance

 cosole.log (a); // 20

}
Liberadas nueve artículos originales · ganado elogios 0 · Vistas 3317

Supongo que te gusta

Origin blog.csdn.net/qq_27568213/article/details/80620010
Recomendado
Clasificación