Il y a deux façons de traverser les tableaux en js
La copie de code est la suivante:
var array = ['a']
// Standard pour Loop
pour (var i = 1; i <array.length; i ++) {
alerte (tableau [i])
}
// Boucle ForEach
pour (var i dans le tableau) {
alerte (tableau [i])
}
Dans des circonstances normales, les deux façons de traverser le tableau sont les mêmes. Tout d'abord, parlons de la première différence entre les deux
Le i dans la norme pour la boucle est de type de nombre, qui représente l'indice du tableau, mais le i dans la boucle foreach représente la clé du tableau est de type de chaîne, car tout en js est un objet. Essayez d'alerte (type de i); Cette différence est un petit problème. Maintenant, j'ajoute le code suivant et les résultats d'exécution ci-dessus seront différents.
La copie de code est la suivante:
// Tableau natif JS étendu
Array.prototype.test = function ()
}
Essayez de voir ce que le code ci-dessus exécute. Nous avons constaté que la norme pour la boucle est toujours réelle en boucle sur les tableaux, mais pour le moment, la boucle Foreach est imprimée hors de la méthode de test que je viens d'écrire. Il s'agit de la plus grande différence entre les tableaux de traversée pour et pour la traversée. Si nous utilisons ForEach pour traverser les tableaux dans le projet, supposons qu'il y ait un jour où quelqu'un étend accidentellement la classe de tableau native de JS, ou introduit un cadre JS externe pour étendre le tableau natif. Alors la question se pose.
Deux autres points à suggérer
1. Ne pas utiliser pour traverser le tableau et utiliser la norme pour les tableaux de variables de boucle en unification (nous ne pouvons garantir si le JS que nous avons introduit utilisera le prototype pour étendre le tableau natif)
2. Si vous souhaitez étendre la classe native de JS, n'utilisez pas le prototype