Heim > Artikel > Web-Frontend > Sind JavaScript-Arrays wirklich dicht oder zeigen sie ein spärliches Verhalten?
Sparse Natur von Javascript-Arrays
In Javascript sind Arrays von Natur aus spärlich, was bedeutet, dass sie nicht automatisch Speicher für alle Elemente zwischen 0 und 0 zuweisen und der aktuelle Index. Stattdessen werden Elemente nur zugewiesen, wenn auf sie zugegriffen oder sie zugewiesen werden.
Betrachten Sie beispielsweise den folgenden Code, in dem wir ein Element zum aktuellen Zeitpunkt als Index festlegen:
array[Date.getTime()] = value;
Im Gegensatz dazu Wie Sie vielleicht erwarten, führt dies nicht dazu, dass der Interpreter alle Elemente von 0 bis zum aktuellen Zeitpunkt zuordnet. Stattdessen wird nur das spezifische Element zugewiesen, auf das zugegriffen wird.
Hash-Tabellen-Implementierung
Javascript-Arrays werden intern als Hash-Tabellen implementiert. Das bedeutet, dass Schlüssel (Indizes) nicht nur Ganzzahlen, sondern auch Strings, Floats oder Objekte sein können. Beim Einfügen in die Hash-Tabelle werden alle Schlüssel mithilfe der toString()-Methode in Zeichenfolgen umgewandelt.
Verifizierungscode
Sie können diese spärliche Natur mit dem folgenden Test überprüfen Code:
var array = []; array[0] = "zero"; array[new Date().getTime()] = "now"; array[3.14] = "pi"; for (var i in array) { console.log("array[" + i + "] = " + array[i] + ", typeof(" + i + ") == " + typeof(i)); }
Dieser Code iteriert über die tatsächlich definierten Indizes und gibt aus:
array[0] = zero, typeof(0) == string array[1254503972355] = now, typeof(1254503972355) == string array[3.14] = pi, typeof(3.14) == string
was zeigt, dass nicht-ganzzahlige Indizes auch ohne Zuweisung von Zwischenelementen funktionieren. Beachten Sie jedoch, dass die Verwendung der herkömmlichen for-Schleife mit i im Bereich von 0 bis array.length zu Problemen mit nicht standardmäßigen Array-Indizes führen kann.
Das obige ist der detaillierte Inhalt vonSind JavaScript-Arrays wirklich dicht oder zeigen sie ein spärliches Verhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!