Bien que les tableaux soient des objets en Javascript, il n'est pas recommandé d'utiliser des boucles for in pour parcourir des tableaux. En fait, il existe de nombreuses raisons pour nous empêcher d'utiliser des boucles in sur des tableaux.
Étant donné que la boucle for in énumérera toutes les propriétés de la chaîne de prototypes et que le seul moyen de l'arrêter est d'utiliser hasOwnProperty pour juger, cela sera beaucoup plus lent qu'une boucle for normale.
Traversée
Pour de meilleures performances, la meilleure façon de parcourir un tableau est d'utiliser une boucle for classique.
Une astuce supplémentaire ici consiste à mettre en cache la longueur du tableau via l = list.length.
Même si la propriété length est définie sur le tableau lui-même, il y a toujours une surcharge à chaque itération de la boucle. Bien que le dernier moteur Javascript puisse proposer des optimisations de performances pour cette situation, rien ne garantit que votre code Javascript s'exécutera toujours dans ce navigateur.
En fait, les boucles dont les longueurs ne sont pas mises en cache sont beaucoup plus lentes que les boucles dont les longueurs sont mises en cache.
attribut de longueur
Bien que la propriété length renvoie uniquement le nombre d'éléments dans le tableau via la méthode getter, le tableau peut être tronqué via la méthode setter.
Attribuer un nombre plus petit à la propriété length tronquera le tableau, tandis qu'attribuer un nombre plus grand ne tronquera pas le tableau.
Résumé
Pour des performances optimales, il est recommandé d'utiliser une boucle for au lieu d'une boucle for in et de mettre en cache la propriété length.
Il existe également des objets tableau qui n'ont aucune méthode, une seule longueur d'attribut unique. Les objets chaîne ont des méthodes de longueur ~~