Es gibt zwei Möglichkeiten, Arrays in JS zu durchqueren
Die Codekopie lautet wie folgt:
var array = ['a']
// Standard für die Schleife
für (var i = 1; i <array.length; i ++) {
alarm (Array [i])
}
// foreach Loop
für (var i in Array) {
alarm (Array [i])
}
Unter normalen Umständen sind die oben genannten zwei Möglichkeiten, das Array zu durchqueren, gleich. Lassen Sie uns zunächst über den ersten Unterschied zwischen den beiden sprechen
Das I im Standard für Schleife ist vom Typ Zahlen -Typ, der das Index des Arrays darstellt, aber das I in der Foreach -Schleife repräsentiert den Schlüssel des Arrays, da alles in JS ein Objekt ist. Versuchen Sie alarmiert (Typof i); Dieser Unterschied ist ein kleines Problem. Jetzt füge ich den folgenden Code hinzu und die obigen Ausführungsergebnisse werden unterschiedlich sein.
Die Codekopie lautet wie folgt:
// erweiterte JS -native Array
Array.Prototype.test = Funktion ())
}
Versuchen Sie zu sehen, was der obige Code ausführt. Wir fanden heraus, dass der Standard für die Schleife immer noch echt auf Arrays ist, aber zu diesem Zeitpunkt wird die Foreach -Schleife aus der Testmethode, die ich gerade geschrieben habe, ausgedruckt. Dies ist der größte Unterschied zwischen und für das Durchqueren von Arrays. Wenn wir für die Durchführung von Arrays des Projekts verwenden, nehmen Sie an, dass es einen Tag gibt, an dem jemand die native Array -Klasse von JS versehentlich erweitert oder ein externes JS -Framework zur Erweiterung des nativen Arrays einführt. Dann stellt sich die Frage.
Zwei weitere Punkte, die vorschlagen sollten
1. Verwenden Sie nicht, um das Array zu durchqueren, und verwenden Sie Standard für Schleifenvariablenarrays in der Vereinigung (wir können nicht garantieren, ob die von uns eingeführten JS Prototype zur Erweiterung des nativen Arrays verwendet)
2. Wenn Sie die native Klasse von JS erweitern möchten, verwenden Sie keinen Prototypen