成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

js如何釋放閉包內(nèi)存 js棧內(nèi)存和堆內(nèi)存的區(qū)別?

js棧內(nèi)存和堆內(nèi)存的區(qū)別?首先,JavaScript中的變量分為基本類型和引用類型?;绢愋褪谴鎯υ诙褩?nèi)存中的簡單數(shù)據(jù)段,而引用類型是指存儲在堆內(nèi)存中的對象。1. 基本類型基本類型包括未定義、nul

js棧內(nèi)存和堆內(nèi)存的區(qū)別?

首先,JavaScript中的變量分為基本類型和引用類型。基本類型是存儲在堆棧內(nèi)存中的簡單數(shù)據(jù)段,而引用類型是指存儲在堆內(nèi)存中的對象。

1. 基本類型

基本類型包括未定義、null、Boolean、number和string。這些類型在內(nèi)存中占據(jù)固定的空間,它們的值存儲在堆??臻g中,我們可以通過值訪問堆??臻g。

2. 引用類型

引用類型。值大小不是固定的。堆棧內(nèi)存中的地址指向堆內(nèi)存中的對象。通過引用訪問。如下圖所示:堆棧內(nèi)存只存儲對象的訪問地址,并在堆內(nèi)存中為該值分配空間。因為這些值的大小不是固定的,所以不能保存到堆棧內(nèi)存中。但是內(nèi)存地址的大小是固定的,所以內(nèi)存地址可以保存在堆棧內(nèi)存中。這樣,當(dāng)查詢引用類型的變量時,首先從堆棧中讀取內(nèi)存地址,然后通過地址在堆中找到值。為此,我們稱之為引用訪問。當(dāng)我們看到一個變量類型已知時,它會在堆棧中分配,比如int、double等。對于其他未知類型,比如用戶定義的類型,因為系統(tǒng)不知道它們需要多大,所以程序會應(yīng)用它們并在堆中分配它們?;绢愋偷拇笮∈枪潭ǖ?,引用類型的大小不是固定的,它被分開存儲以最小化程序占用的內(nèi)存。

3. 堆棧內(nèi)存:存儲基本類型。堆內(nèi)存:存儲引用類型(在堆棧內(nèi)存中存儲基本類型值以在堆內(nèi)存中存儲對象的地址以引用對象。)

4?;愋蛯⒃诋?dāng)前執(zhí)行環(huán)境結(jié)束時銷毀,而引用類型不會在執(zhí)行環(huán)境結(jié)束時銷毀。只有當(dāng)引用它的所有變量都不存在時,垃圾回收機制才會回收該對象。