在 JavaScript 中,堆疊和堆是用於管理資料的兩種類型的內存,每種都有不同的用途:
*什麼是堆疊和堆*
堆疊:堆疊用於靜態記憶體分配,主要用於儲存基本類型和函數呼叫。它是一個簡單的後進先出 (LIFO) 結構,使其存取速度非常快。
堆:堆用於動態記憶體分配,其中儲存物件和陣列(非基本類型)。與堆疊不同,堆更複雜且存取速度更慢,因為它允許靈活的記憶體分配。
堆疊記憶體範例:
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)
在此範例中:
堆記憶體範例
現在讓我們檢查一下堆中如何管理非原始資料類型(物件)。
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
在此範例中:
重點
*堆疊記憶體 * 用於儲存原始類型和函數呼叫。每次分配一個值時,都會在堆疊中建立一個新副本。
*堆疊記憶體 *用於儲存物件和陣列。引用同一物件的變數共享記憶體中的相同記憶體位置,因此更改一個變數會影響其他變數。
以上是了解 JavaScript 中的堆疊和堆疊。的詳細內容。更多資訊請關注PHP中文網其他相關文章!