1. 程式人生 > >js中的簡單資料型別和複雜資料型別的儲存

js中的簡單資料型別和複雜資料型別的儲存

基本型別儲存的是值而複雜資料型別也叫引用型別儲存的是物件的地址如0x00001而在棧中存的是變數數值和函式引數

堆中存的是物件和陣列

堆疊空間分配

棧(作業系統):由作業系統自動分配釋放 ,存放函式的引數值區域性變數的值等。其操作方式類似於資料結構中的棧。

堆(作業系統): 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由OS回收,分配方式倒是類似於連結串列。

堆疊快取方式

棧使用的是一級快取, 他們通常都是被呼叫時處於儲存空間中,呼叫完畢立即釋放。

堆則是存放在二級快取中,生命週期由虛擬機器的垃圾回收演算法來決定(並不是一旦成為孤兒物件就能被回收)。所以呼叫這些物件的速度要相對來得低一些。

基本資料型別的儲存

總結:基本的資料型別儲存在棧中,先將變數的宣告在記憶體中的棧開闢一片空間,後將值賦給這片空間,執行步驟:

  1. var num;
  2. num = 10;
  3. var n;
  4. n = num;

先聲明後賦值,當一個變數賦值的是另一個變數時,就會將那個變數的值賦給這個變數