Je sais ce qu'est la for... in
boucle (itère sur la clé), mais entend la première fois for... of
(itère sur la valeur).
Je suis confondu avec la for... of
boucle. Je n'ai pas été adjecté. Voici le code ci-dessous:
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"
}
Ce que j'ai obtenu est, for... of
itère sur les valeurs des propriétés. Alors pourquoi il ne se connecte pas (retour) "3", "5", "7", "hello"
au lieu de "3", "5", "7"
? mais la for... in
boucle itère sur chaque touche ( "0", "1", "2", "foo"
). Ici, la for... in
boucle parcourt également la foo
clé. Mais for... of
n'itère pas sur la valeur de la foo
propriété ie "hello"
. Pourquoi c'est comme ça?
Longue histoire en bref:
Ici, je for... of
boucle la console . Il devrait se connecter, "3", "5", "7","hello"
mais ici, il se connecte "3", "5", "7"
. Pourquoi ?
for ... of
été introduit dans le langage pour résoudre les problèmes d'utilisation for ... in
des tableaux. Array.prototype
pourrait être modifié de telle sorte que des propriétés supplémentaires soient disponibles, ce qui rendrait leur itération dangereuse car vous pourriez obtenir des clés non numériques que vous ne vous attendiez pas.
of
(pour… des boucles) , car il pose des questions sur un comportement spécifique de la fonctionnalité, plutôt que de demander un aperçu général.
for <key> in
" et " for <value> of
" et réalisez for..of