Heim > Web-Frontend > js-Tutorial > Hauptteil

Anmerkungen zur Javascript-Studie: Array-Traversal und Längenattribut_Grundkenntnisse

WBOY
Freigeben: 2016-05-16 16:30:43
Original
1417 Leute haben es durchsucht

Obwohl Arrays Objekte in Javascript sind, wird die Verwendung von for-in-Schleifen zum Durchlaufen von Arrays nicht empfohlen. Tatsächlich gibt es viele Gründe, die uns davon abhalten, for-in-Schleifen für Arrays zu verwenden.
Da die for-in-Schleife alle Eigenschaften in der Prototypenkette auflistet und die einzige Möglichkeit, sie zu stoppen, darin besteht, hasOwnProperty zur Beurteilung zu verwenden, ist dies viel langsamer als eine normale for-Schleife.

Traverse

Für eine optimale Leistung ist die Verwendung einer klassischen for-Schleife die beste Möglichkeit, über ein Array zu iterieren.

Code kopieren Der Code lautet wie folgt:

var list = [1, 2, 3, 4, 5, ...... 100000000];
for(var i = 0, l = list.length; i < l; i ) {
console.log(list[i]);
}

Ein zusätzlicher Trick besteht darin, die Länge des Arrays über l = list.length zwischenzuspeichern.
Obwohl die Längeneigenschaft im Array selbst definiert ist, entsteht bei jeder Iteration der Schleife immer noch ein Overhead. Obwohl die neueste Javascript-Engine möglicherweise über Leistungsoptimierungen für diese Situation verfügt, gibt es keine Garantie dafür, dass Ihr Javascript-Code immer in diesem Browser ausgeführt wird.
Tatsächlich sind Schleifen mit nicht zwischengespeicherten Längen viel langsamer als Schleifen mit zwischengespeicherten Längen.

Längenattribut

Obwohl die Längeneigenschaft über die Getter-Methode nur die Anzahl der Elemente im Array zurückgibt, kann das Array über die Setter-Methode gekürzt werden.

Code kopieren Der Code lautet wie folgt:

var foo = [1, 2, 3, 4, 5, 6];
foo.length = 3;
foo; // [1, 2, 3]
foo.length = 6;
foo.push(4);
foo; // [1, 2, 3, undefiniert, undefiniert, undefiniert, 4]

Durch die Zuweisung einer kleineren Zahl zur Längeneigenschaft wird das Array abgeschnitten, während die Zuweisung einer größeren Zahl das Array nicht abschneidet.

Zusammenfassung

Für eine optimale Leistung wird empfohlen, eine for-Schleife anstelle einer for-in-Schleife zu verwenden und die Längeneigenschaft zwischenzuspeichern.

Es gibt auch Array-Objekte, die keine Methoden haben, sondern nur eine eindeutige Attributlänge. String-Objekte haben Längenmethoden~~

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!