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
}