Die for-Schleife ist nützlich, wenn wir Objekte oder Arrays in js durchlaufen. Schauen wir uns einige Anwendungsbeispiele der for-Schleife an. Die spezifischen Operationsdetails werden unten vorgestellt.
wird im Allgemeinen wie folgt geschrieben:
for(var i = 0;i< arr.length;i++) { var a = arr[i]; //... }
Dies ist eine übliche, positive Sequenz für eine Schleife. Jeder kennt die Nachteile dieser Schreibweise: Die Länge von arr zu nehmen und sie jedes Mal mit i zu vergleichen, ist eine Leistungsverschwendung (und wenn sich die Länge von arr dynamisch ändert, entsteht eine Endlosschleife). Die Möglichkeit, diese Schleife zu verbessern, besteht darin, Variablen zum Speichern zu verwenden: arr.length
for(var i = 0, al = arr.length;i< al;i++) { var a = arr[i]; //... }
Wenn Ihnen die Schleifenreihenfolge nicht wichtig ist, können Sie versuchen, die Schleife in umgekehrter Reihenfolge durchzuführen:
for(var i = arr.length-1;i > -1;i--) { var a = arr[i]; //... }
(er will tatsächlich -1, verdammt) und dann die Bedingung i > -1, damit die Schleife weiter ausgeführt wird, was unerträglich ist für Menschen mit Mysophobie. i = arr.length-1
Das Folgende ist meine häufig verwendete umgekehrte Reihenfolge für die Methode zum Schreiben von Schleifen:
for(var i = arr.length;i--;) { var a = arr[i]; //... }
i=arr.length
Jedem ist aufgefallen, dass es im for-Schleifenkörper aller oben genannten Codes ein
var a = arr[i]
lautet wie folgt:
Der Vorteil dieser Schreibweise besteht darin, dass es fast unvermeidlich ist, dassfor(var i = 0, a;a = arr[i++];) { //... }
arr.length
wird als Bedingung für die Ausführung der Schleife verwendet, es ist also keins Urteilssatz, sondern eine Zuweisungsanweisung. Weisen Sie einfach
a zu und bestimmen Sie dann, ob a ein wahrer Wert ist. Ich werde nicht auf die Haupttypen von i++ und i– eingehen. Ich sage nur, dass die Schleife anhalten muss, wenn i++ die Länge des Arrays überschreitet, und sie stoppt hier wirklich. Denn a = arr[i++]
: Wenn Sie ein Element erhalten, das die Länge des Arrays selbst überschreitet, erhalten Sie nur einen undefinierten Wert, und undefiniert ist ein falscher Wert, und die Schleifenbedingung schlägt fehl. arr[i++]
a=arr[i++]
1. Wenn sich die Länge von arr dynamisch ändert, entsteht immer noch eine Endlosschleife ———— Weil wir arr.length nie zwischengespeichert haben.
2. Wenn die Schleife ein Zahlenarray ist und das herausgenommene Element (d. h. der Wert von a) 0 ist, wird die Schleife beendet (da 0 ein falscher Wert ist). .
3. Wenn ein Element im Array ein falscher Wert ist (einschließlich leerer Zeichenfolge, 0, null, undefiniert), wird die Schleife ebenfalls beendet
, sodass jeder diese Methode verwendet Es ist am besten, die oben genannte Situation auszuschließen, bevor Sie sie verwenden.
Dieses Prinzip kann auch in umgekehrten Schleifen verwendet werden.
Abschließende Ratschläge:
1. Pause zum richtigen Zeitpunkt! Kein Durchqueren erforderlich. Alle müssen Fluchtbedingungen hinzufügen!
2. Deklarieren Sie keine Variablen im for-Schleifenkörper (es wird empfohlen, var einmal und mehrfach zuzuweisen)
2. Speichern Sie die Array-Länge im Cache und verwenden Sie sie als möglichst wenige Variablen
Das obige ist der detaillierte Inhalt vonVergleich verschiedener Verwendungen von for-Schleifen in Javascript und wie man die Leistung verbessern kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!