js的棧堆概念

棧堆概念
Js中沒有棧堆概念,引入它爲了方便理解和更好的學習:
數據類型
基本類型數據叫做值類型,複雜類型又叫做引用類型
a.值類型,簡單數據類型,在存儲時,變量中存儲的是值本身,因此叫做值類型。
b.引用類型,複雜數據類型,在存儲時,變量存儲的僅僅是地址,用其引用,因此稱爲引用數據類型。
棧堆空間分配概念
1.棧
由操作系統自動分配釋放,存放函數的參數值,局部變量的值等,操作方式類似於數據結構中的棧。
2.堆
存儲複雜類型(對象),一般由程序員分配釋放,也可由垃圾回收機制回收,分配方式類似於鏈式表。
var x =5;
var y =6;
f1(x,y);
functionf1(a,b) {
a=a+1;
b=b+1;
console.log("a="+a);//a=6;
console.log("b="+b);//b=7;
}
第一步:預解析過程階段,var 聲明的變量以及函數全部提到頂部:
var x,
var y,
function f1(a,b){}
第二步:執行階段:
x = 5;
y = 6;
f1(5,6)調用函數,執行函數體代碼;
函數裏面var a = 5;
var b = 6;
a = a+1;//6
b = b+1;//7
返回值

同理:複雜類型數據對象在棧堆同樣的存儲方式
發佈了47 篇原創文章 · 獲贊 8 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章