„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Stack und Heap in JavaScript verstehen.

Stack und Heap in JavaScript verstehen.

Veröffentlicht am 03.11.2024
Durchsuche:659

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. Heap

*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 den Zugriff sehr schnell macht.

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)

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
Lassen Sie uns nun überprüfen, wie nicht-primitive Datentypen (Objekte) im Heap verwaltet werden.

let userOne = {         // The reference to this object is stored in the Stack.
    email: "[email protected]",
    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 = "[email protected]"; // Modifying userTwo also affects userOne.

console.log(userOne.email); // Output: [email protected]
console.log(userTwo.email); // Output: [email protected]

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.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/amar_x_vr/understanding-stack-and-heap-in-javascript--11ho?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3