JS的呼叫堆疊和堆

2021-09-26 15:15:39 字數 958 閱讀 1637

/** js中運算順序從右至左

* 注:當有'.'出現時,先進行該運算,是優先順序最高的運算子

* * 呼叫堆疊:存放原始資料型別

* 堆:儲存引用型別(堆可以儲存無序的資料)

**/let mynumber = 23;

/** newvar指向和mynumber相同的位址 **/

let newvar = mynumber;

/** 分配乙個位址(0034aaaah23),存放0012ccgwh80位址的值+1後的結果,mynumber改為指向該記憶體位址(0034aaaah23) **/

mynumber = mynumber + 1;

/** 驗證結果,mynumber(結果:24)不等於newvar(結果:23) **/

console.log(newvar === mynumber);

console.log(newvar);

console.log(mynumber);

/** 當記憶體中有23存在時,不分配新的記憶體位址,只是將test指向已存在的記憶體位址 **/

let test = 23;

/** 返回true **/

console.log(test === newvar);

let str1 = 'aaaa';

let str2 = 'aaaa';

/** 返回true **/

console.log(str1 === str2);

/** * 1.為變數建立唯一識別符號(myarray)

* 2.在記憶體中分配乙個位址(執行時分配)(棧中的位址)(0x00000001)

* 棧:(address:0x00000001,value:0d00000001)

* 堆:(address:0d00000001,value:)

*/const myarray = ;

堆和堆疊的區別

堆和堆疊的區別 一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os...

堆和堆疊的區別

一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結...

堆和堆疊的區別

一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結...