Rumah  >  Artikel  >  hujung hadapan web  >  Memahami Stack dan Heap dalam JavaScript .

Memahami Stack dan Heap dalam JavaScript .

DDD
DDDasal
2024-10-14 06:19:29897semak imbas

Understanding Stack and Heap in JavaScript .

Dalam JavaScript, tindanan dan timbunan ialah dua jenis memori yang digunakan untuk mengurus data, setiap satu dengan tujuan yang berbeza:

  1. Timbunan
  2. Timbunan

*Apakah Stack dan Heap *
Tindanan : Tindanan digunakan untuk peruntukan memori statik, terutamanya untuk menyimpan jenis primitif dan panggilan fungsi. Ia adalah struktur mudah, masuk terakhir, keluar dahulu (LIFO), menjadikannya sangat pantas untuk diakses.

Heap : Heap digunakan untuk peruntukan memori dinamik, di mana objek dan tatasusunan (jenis bukan primitif) disimpan. Tidak seperti Stack, Heap adalah lebih kompleks dan lebih perlahan untuk diakses, kerana ia membenarkan peruntukan memori yang fleksibel.

Contoh Memori Tindanan :

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)

Dalam contoh ini :

  • myName disimpan dalam Tindanan sebagai jenis primitif.
  • Apabila nama panggilan diberikan nilai myName , salinan nilai itu dibuat dalam Tindanan .
  • Menukar nama panggilan tidak menjejaskan myName , kerana ia adalah salinan bebas dalam ingatan.

Contoh Heap Memory
Sekarang mari semak cara jenis data bukan primitif(objek) diurus dalam Heap .

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

Dalam contoh ini:

  • userOne memegang rujukan kepada objek yang disimpan dalam Heap. -userTwo diberikan rujukan yang sama, bermakna kedua-dua userOne dan userTwo menunjuk ke objek yang sama dalam Heap. -Menukar userTwo.email secara langsung mempengaruhi userOne.email, kerana kedua-dua rujukan menghala ke lokasi yang sama dalam ingatan.

Pengambilan Utama
*Memori Tindanan * digunakan untuk menyimpan jenis primitif dan panggilan fungsi . Setiap kali anda menetapkan nilai , salinan baharu dibuat dalam Tindanan.
*Memori Timbunan * digunakan untuk menyimpan objek dan tatasusunan . Pembolehubah yang merujuk objek yang sama berkongsi lokasi memori yang sama dalam ingatan , jadi menukar satu pembolehubah mempengaruhi yang lain .

Atas ialah kandungan terperinci Memahami Stack dan Heap dalam JavaScript .. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn