Sé lo que es el for... inbucle (itera sobre la clave), pero escuché la primera vez sobre for... of(itera sobre el valor).
Estoy confundido con for... ofloop. No recibí adjetivo. Este es el código a continuación:
var arr = [3, 5, 7];
arr.foo = "hello";
for (var i in arr) {
console.log(i); // logs "0", "1", "2", "foo"
}
for (var i of arr) {
console.log(i); // logs "3", "5", "7"
// it is does not log "3", "5", "7", "hello"
}
Lo que obtuve es, for... ofitera sobre los valores de propiedad. Entonces, ¿por qué no registra (regresa) en "3", "5", "7", "hello"lugar de "3", "5", "7"? pero el for... inciclo itera sobre cada tecla ( "0", "1", "2", "foo"). Aquí el for... inciclo también itera sobre la fooclave. Pero for... ofno itera sobre el valor de la foopropiedad, es decir "hello". ¿Por qué es así?
Larga historia en resumen:
Aquí tengo un for... ofbucle de consola . Debe iniciar sesión "3", "5", "7","hello"pero aquí se registra "3", "5", "7". Por qué ?
for ... ofse introdujo en el idioma para solucionar los problemas de uso for ... incon matrices. Array.prototypepodría modificarse de tal manera que haya propiedades adicionales disponibles, lo que hace que no sea seguro iterarlas, ya que podría obtener claves no numéricas que no esperaba.
of(para ... de bucles) , ya que pregunta sobre un comportamiento específico de la función, en lugar de pedir una descripción general.
for <key> infor <value> offor..of
