国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

JavaScript數據類型--值類型和引用類型

2024-04-27 15:12:35
字體:
來源:轉載
供稿:網友

值類型:也稱為原始數據或原始值(PRimitive value)。

這類值存儲在棧(stack)中,棧是內存中一種特殊的數據結構,也稱為線性表,棧按照后進先出的原則存儲數據,先進入的數據被壓入棧底,最后插入(push)的數據放在棧頂,需要讀取數據時從棧頂開始彈出(pop)數據,即最后一個數據被第一個讀出來。因此說,值類型都是簡單的數據段。變量的位置和變量值的位置是重疊的,也就是說值類型的數據被存儲在變量被訪問的位置。

引用類型:這類值存儲在堆(heap)中,堆是內存中的動態區域,相當于自留空間,在程序運行期間會動態分配給代碼和堆棧。

堆中存儲的一般都是對象,然后通過一個編號傳遞給棧內變量,這個編號就是所謂的引用指針(point),這樣變量和變量值之間是分離的,它們通過指針相聯系。當讀寫數據時,計算機通過變量的指針找到堆中的數據塊,并進行操作。

javaScript中,number、string、boolean、null和undefined型數據都是值類型。由于值類型數據占據的空間都是固定的,所以可以把它們存儲在狹窄的內存棧區。這種存儲方式更方便計算機進行查找和操作,所以執行速度會非常快。

而對于object型數據(包括function和array)來說,由于它們的大小是不固定的,所以不能存儲在棧區,只能被分配到堆區,如果存儲在棧區,則會降低計算機尋址的速度。而堆的空間是不固定的,所以很適合存儲大小不固定的對象數據,然后在棧區存儲對象在堆區的地址即可,而地址的大小是固定的,所以這種分離存儲的方法不會影響計算機的尋址速度,對于變量的性能也沒有任何負面影響(如圖)。

Javascript語言中,object、function和array等對象都是引用型數據。很多語言都把字符串視為引用型數據,而不是值類型,因為字符串的長度是可變的。但是JavaScript比較特殊,它把字符串作為值類型進行處理。不過,字符串在復制和傳遞運算中,是以引用型數據的方法來處理的。 這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙洋县| 宜兴市| 南通市| 苏尼特右旗| 临夏市| 定日县| 永兴县| 丰都县| 浮梁县| 平泉县| 枝江市| 昭苏县| 大连市| 肥城市| 潜江市| 玉溪市| 华坪县| 西吉县| 定陶县| 日照市| 青铜峡市| 盐亭县| 乌拉特前旗| 炎陵县| 固阳县| 金堂县| 深泽县| 乐业县| 民丰县| 新昌县| 双柏县| 馆陶县| 夏河县| 昌吉市| 古交市| 克东县| 宕昌县| 清徐县| 双鸭山市| 精河县| 克什克腾旗|