Wenn die Variable weiterhin besteht (z. B. global oder Teil einer dauerhaften Datenstruktur) und die Daten, auf die sie verweist, groß sind und Sie möchten, dass diese Daten für die Speicherbereinigung in Frage kommen, weisen Sie dieser Variablen zu Recht etwas Kleines zu. undefined
oder null
oder ""
wird alles funktionieren. Sie löschen den Verweis auf die großen Datenmengen, damit diese für die Speicherbereinigung in Frage kommen. Wenn nichts anderes in Ihrem Javascript auf diese Daten verweist, kann es vom Garbage Collector freigegeben werden. Wenn irgendetwas anderes einen Verweis darauf hat, kann es nicht freigegeben werden.
Wenn Sie beispielsweise ein Array mit 10.000 Elementen in einer globalen Variablen gespeichert haben:
var largeDataArray = new Array(10000);
Und wenn Sie die meisten Elemente mit Daten gefüllt haben, können Sie zulassen, dass dieser Speicher für die Speicherbereinigung geeignet ist, indem Sie ihm einen anderen Wert zuweisen, z.
largeDataArray = null;
oder wenn Sie immer noch möchten, dass es sich um ein Array handelt:
largeDataArray = [];
Hinweis: Variablen, die selbst den Gültigkeitsbereich verlassen (wie lokale Variablen in Funktionen, die nicht Teil eines dauerhaften Abschlusses sind) oder Variablen in Objekten, die selbst den Gültigkeitsbereich verlassen, müssen nicht manuell gelöscht werden. Wenn sie den Gültigkeitsbereich verlassen oder wenn das übergeordnete Objekt gelöscht wird, können die darin enthaltenen Daten auch zur Speicherbereinigung verwendet werden.
Das Löschen einer Variablen muss also nur erfolgen, wenn Sie explizit Daten freigeben möchten, die in einer langlebigen Variablen gespeichert sind, und es ist normalerweise nur relevant, sich darüber Gedanken zu machen, wenn die Daten groß sind oder wenn Sie viele davon hinzufügen bis zu mehreren Megabyte Daten (die Speichernutzung ist auf Smartphones auf niedrigeren Ebenen von größerer Bedeutung als in Desktop-Browsern).