Maison >interface Web >js tutoriel >Quelle est la principale différence entre les boucles JavaScript « for...in » et « for...of » ?

Quelle est la principale différence entre les boucles JavaScript « for...in » et « for...of » ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-14 09:53:11867parcourir

What's the Key Difference Between JavaScript's `for...in` and `for...of` Loops?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn