js堆和棧的區別?
一、 堆(heap)和棧(stack)
棧(stack)會自動分配內存空間,會自動釋放。堆(heap)動態分配的內存,大小不定也不會自動釋放。
二、 基本類型和引用類型
基本類型:簡單的數據段,存放在棧內存中,占據固定大小的空間。
引用類型:指那些可能由多個值構成的對象,保存在堆內存中,包含引用類型的變量實際上保存的不是變量本身,二十指向該對象的指針。
基本數據類型包括Undefined,String,Boolean,Null,Number
三、 傳值和傳址
從一個向另一個變量復制引用類型的值,復制的其實是指針,因此兩個變量最終指向同一個對象。即復制的是棧中的地址而不是堆中的對象。
從一個變量復向另一個變量復制基本類型的值,會創建這個值的副本。