首頁  >  文章  >  web前端  >  JavaScript中棧和堆的差別是什麼

JavaScript中棧和堆的差別是什麼

WBOY
WBOY原創
2022-03-01 16:52:524482瀏覽

區別:1、在記憶體操作中,堆疊由作業系統自動分配和釋放,而堆由開發人員自主分配和釋放;2、在資料結構中,堆疊是一種運算受限的線性表,只允許表的一端進行插入和刪除操作,而堆是一種優先隊列,會根據優先權找優先權最高的先執行。

JavaScript中棧和堆的差別是什麼

本教學操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。

JavaScript中堆疊和堆疊的差異是什麼

在理解堆疊與堆疊這兩個概念時,需要放到具體的場景下去理解。一般情況下有兩層意義:

(1)記憶體操作場景下,堆疊與堆疊表示兩種記憶體的管理方式。

(2)資料結構場景下,堆疊與堆疊表示兩種常用的資料結構。

1、記憶體操作場景

#堆疊由作業系統自動分配和釋放,用於存放簡單的資料段,佔據固定大小的空間,例如基本資料類型(Number、String、Boolean…)和函數的參數值等。

堆由開發人員自主分配和釋放,若不主動釋放,程式結束時由瀏覽器回收,用於儲存引用類型(引用類型的變數實際上保存的不是變數本身,而是指向記憶體空間的指針)。

JavaScript中的資料類型

2、資料結構場景

#JavaScript存在堆疊和佇列概念,透過陣列的方式,模仿實作堆疊。

堆疊:堆疊是一種運算受限的線性表,其限制是指只僅允許在表的一端進行插入和刪除操作,這一端被稱為棧頂(Top),相對地,另一端稱為棧底(Bottom)。把新元素放到棧頂元素的上面,使之成為新的棧頂元素稱作進棧、入棧或壓棧(Push);把棧頂元素刪除,使其相鄰的元素成為新的棧頂元素稱作出堆疊或退棧(Pop)。透過數組的push()、pop()方法實作堆疊。

堆:堆其實是一種優先隊列,也就是說隊列中存在優先權,例如隊列中有很多待執行任務,執行時會根據優先權找優先權最高的先執行。

相關推薦:javascript學習教學

#

以上是JavaScript中棧和堆的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn