Heim > Web-Frontend > js-Tutorial > Hauptteil

Stack und Heap in JavaScript verstehen.

DDD
Freigeben: 2024-10-14 06:19:29
Original
901 Leute haben es durchsucht

Understanding Stack and Heap in JavaScript .

In JavaScript sind Stack und Heap zwei Arten von Speicher, die zum Verwalten von Daten verwendet werden und jeweils einen bestimmten Zweck haben:

  1. Stapel
  2. Haufen

*Was sind Stack und Heap *
Stack: Der Stack wird für die statische Speicherzuweisung verwendet, hauptsächlich zum Speichern primitiver Typen und Funktionsaufrufe. Es handelt sich um eine einfache LIFO-Struktur (Last-In, First-Out), die einen sehr schnellen Zugriff ermöglicht.

Heap: Der Heap wird für die dynamische Speicherzuweisung verwendet, wo Objekte und Arrays (nicht-primitive Typen) gespeichert werden. Im Gegensatz zum Stack ist der Heap komplexer und langsamer im Zugriff, da er eine flexible Speicherzuweisung ermöglicht.

Beispiel für Stapelspeicher:

let myName = "Amardeep"; //primitive type stored in stack 
let nickname = myName; // A copy of the value is created in the Stack 
nickname = "Rishu"; // Now changing the copy does not affect the original value .
console.log(myName); // output => Amardeep (Original values remains unchanged since we are using stack)
console.log(nickname); // output => rishu (only the copied value will changed)
Nach dem Login kopieren

In diesem Beispiel:

  • myName wird im Stack als primitiver Typ gespeichert.
  • Wenn dem Spitznamen der Wert myName zugewiesen wird, wird eine Kopie dieses Werts im Stack erstellt.
  • Das Ändern des Spitznamens hat keine Auswirkungen auf myName , da es sich um unabhängige Kopien im Speicher handelt.

Beispiel für Heap-Speicher
Schauen wir uns nun an, wie nicht-primitive Datentypen (Objekte) im Heap verwaltet werden.

let userOne = {         // The reference to this object is stored in the Stack.
    email: "user@google.com",
    upi: "user@ybl"
};                      // The actual object data is stored in the Heap.

let userTwo = userOne;  // userTwo references the same object in the Heap.

userTwo.email = "amar@google.com"; // Modifying userTwo also affects userOne.

console.log(userOne.email); // Output: amar@google.com
console.log(userTwo.email); // Output: amar@google.com
Nach dem Login kopieren

In diesem Beispiel:

  • userOne enthält einen Verweis auf ein im Heap gespeichertes Objekt. -userTwo wird die gleiche Referenz zugewiesen, was bedeutet, dass sowohl userOne als auch userTwo auf dasselbe Objekt im Heap verweisen. -Eine Änderung von userTwo.email wirkt sich direkt auf userOne.email aus, da beide Referenzen auf denselben Speicherort verweisen.

Wichtige Erkenntnisse
*Stapelspeicher * wird zum Speichern primitiver Typen und Funktionsaufrufe verwendet. Jedes Mal, wenn Sie einen Wert zuweisen, wird eine neue Kopie im Stapel erstellt.
*Heap-Speicher * wird zum Speichern von Objekten und Arrays verwendet. Variablen, die auf dasselbe Objekt verweisen, teilen sich denselben Speicherort im Speicher, sodass sich die Änderung einer Variablen auf die anderen auswirkt.

Das obige ist der detaillierte Inhalt vonStack und Heap in JavaScript verstehen.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
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