In JavaScript sind Stack und Heap zwei Arten von Speicher, die zum Verwalten von Daten verwendet werden und jeweils einen bestimmten Zweck haben:
*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:
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:
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.
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