棧堆概念
Js中沒有棧堆概念,引入它為了方便理解和更好的學習:
數據類型
基本類型數據叫做值類型,復雜類型又叫做引用類型
a.值類型,簡單數據類型,在存儲時,變量中存儲的是值本身,因此叫做值類型。
b.引用類型,復雜數據類型,在存儲時,變量存儲的僅僅是地址,用其引用,因此稱為引用數據類型。
棧堆空間分配概念
1.棧
由操作系統自動分配釋放,存放函數的參數值,局部變量的值等,操作方式類似于數據結構中的棧。
2.堆
存儲復雜類型(對象),一般由程序員分配釋放,也可由垃圾回收機制回收,分配方式類似于鏈式表。
varx =5; vary =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 返回值
同理:復雜類型數據對象在棧堆同樣的存儲方式
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com