Maison >interface Web >js tutoriel >Quelle est la principale différence entre les boucles JavaScript « for...in » et « for...of » ?
Comprendre la distinction entre for...in et for...des instructions
Dans le domaine du bouclage JavaScript, for.. Les déclarations .in et for...of génèrent souvent de la confusion. Alors que for...in a été la pierre angulaire de l'itération sur les propriétés, for...of a émergé dans ES6 pour cibler spécifiquement des valeurs. Cet article examine les principales différences entre ces deux constructions.
for...in : Traversée des noms de propriétés
Les boucles For...in parcourent la propriété énumérable noms d'un objet. Comme démontré dans l'exemple, il enregistre avec succès "0", "1", "2" et "foo", qui représentent les clés d'index du tableau et la clé "foo" de l'objet tableau.
for...of : Extraction des valeurs de propriété
En revanche, for...of utilise un itérateur spécifique à l'objet pour parcourir les valeurs générées par cet itérateur. Dans l'exemple, l'itérateur de tableau renvoie uniquement les valeurs du tableau, à savoir « 3 », « 5 » et « 7 ». Ce comportement vient du fait que les itérateurs sont conçus pour se concentrer uniquement sur les valeurs.
Non-itération des propriétés non indexées
Notamment, pour... de fait ne pas parcourir les propriétés non indexées. Dans l'exemple, la propriété "foo", qui contient la valeur "hello", n'est pas journalisée. En effet, l'itérateur du tableau ne produit que les valeurs associées aux indices du tableau.
Exemple : itération axée sur les valeurs
Pour illustrer, la boucle suivante doit enregistrer les valeurs du tableau ainsi que la valeur de la propriété "foo", mais il enregistre uniquement les valeurs du tableau :
for (var i of arr) { console.log(i); // logs "3", "5", "7" }
Ce comportement renforce la compréhension que for...of est spécialement conçu pour parcourir les valeurs, à l'exclusion des propriétés non indexées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!