Heim  >  Artikel  >  Web-Frontend  >  Was ist der Unterschied zwischen konstantem Pool und Heap in Javascript?

Was ist der Unterschied zwischen konstantem Pool und Heap in Javascript?

青灯夜游
青灯夜游Original
2022-02-08 14:54:592463Durchsuche

Der Unterschied zwischen dem Konstantenpool und dem Heap in JavaScript: 1. Der Konstantenpool wird zum Speichern von Konstanten und Basisdatentypen verwendet, während der Heap zum Speichern komplexer Datentypen verwendet wird. 2. Die Systemeffizienz des Konstantenpools beträgt höher, während der Heap Speicherplatz und Adressen zuweisen muss und die Adresse im Stapel gespeichert werden muss, sodass die Effizienz geringer ist als die des Stapels (konstanter Pool).

Was ist der Unterschied zwischen konstantem Pool und Heap in Javascript?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Der Speicher von JavaScript ist in Stapelspeicher, Heapspeicher und Konstantenpool unterteilt. Der Konstantenpool wird im Allgemeinen im Stapel zusammengefasst.

  • Stapelspeicher: Wird zum Speichern grundlegender Datentypen verwendet zum Speichern von Konstanten Basisdatentyp (normalerweise in Stapelspeicher klassifiziert)

  • Heapspeicher: Wird zum Speichern komplexer Datentypen verwendet

  • Wenn eine Variable einen Basisdatentyp speichert, wird der Wert der Variablen im Stapelspeicher gespeichert

  • Wenn die Variable einen komplexen Datentyp speichert, ist der Variablenwert eine von js zugewiesene Speicheradresse, die aufgrund seiner Eigenschaften auf den komplexen Datentyp im Heap-Speicher verweist.

Stapelspeicher (konstanter Pool) Die Systemeffizienz ist höher. Der Heap-Speicher muss Speicherplatz und Adressen zuweisen und die Adressen auf dem Stapel speichern, sodass die Effizienz geringer ist als die des Stapels.

Stapelspeicher

Da grundlegende Zahlentypen wenig Platz beanspruchen, eine feste Größe haben und häufig verwendet werden, werden sie im Stapelspeicher gespeichertNehmen Sie als Beispiel einen der grundlegenden Datentypen, Zahl :

Wenn wir eine Basisdatentypvariable deklarieren, werden der Variablenname und der spezifische Wert im Stapelspeicher gespeichert

Wenn wir console.log(a) verwenden, geben wir den entsprechenden Wert aus

Was ist der Unterschied zwischen konstantem Pool und Heap in Javascript?

Heapspeicher

Da komplexe Datentypen viel Platz beanspruchen und keine feste Größe haben, wirkt sich das Speichern auf dem Stapel auf die Leistung aus, sodass sie im Heap-Speicher gespeichert werden.

Wenn wir eine Variable zum Speichern eines Komplexes deklarieren Der Datentyp wird im Stapelspeicher gespeichert. Generieren Sie einen Variablennamen und einen bestimmten Wert. Dieser bestimmte Wert ist eine von JS zugewiesene Speicherreferenzadresse. Diese Adresse verweist auf den von uns erstellten komplexen Datentyp, der im Heapspeicher gespeichert ist. Wenn wir die Variable aufrufen, verweist der Parser auf das entsprechende Objekt basierend auf der Referenzadresse, die der Variablen entspricht.

Was ist der Unterschied zwischen konstantem Pool und Heap in Javascript?

Kopieren von Variablen

Kopieren von Basisdatentypen:

var num1=5;
var num2=num1;
Im obigen Code sind num1 und num2 tatsächlich zwei verschiedene Variablen, und ihre Operationen hängen nicht miteinander zusammen. Dies liegt daran, dass in js , Diese Art des Variablenkopierens erzeugt tatsächlich eine Kopie einer Variablen (d. h. num2=1)

Wie in der Abbildung gezeigt

Kopieren komplexer Datentypen:

var person={name:'李华'}; //创建一个对象
var per=person ; //进行对象的复制
Was ist der Unterschied zwischen konstantem Pool und Heap in Javascript?Der Unterschied zum Kopieren grundlegender Datentypvariablen ist Wenn wir ein komplexes Datentypobjekt kopieren, besteht das Wesentliche darin, die Speicherreferenzadresse der Variablen zu kopieren. Daher beziehen sich beide auf dasselbe Objekt , sie arbeiten alle im Speicher. Das Bild zeigt das gleiche Objekt:

Die Übergabe von Funktionsparametern ist eigentlich eine Art Variablenkopie Lern-Tutorial

Was ist der Unterschied zwischen konstantem Pool und Heap in Javascript?]

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen konstantem Pool und Heap in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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