js類型以及存儲方式


一、js內置類型

基礎類型:String, number, null, undefine, boolean, symbol, bigint

引用類型:Object(包含普通對象Object,數組對象Array,正則對象Regexp,日期對象Date,數學函數Math,函數對象function)

!注:js不支持創建自定義類型機制,所有的類型都是這8個類型之一。

二、存儲位置

基礎數據類型:存放在棧內存,被引用或被拷貝時候,會創建一個完全相等的變量,占據空間小,大小固定,屬於被頻繁使用的數據類型。

引用數據類型:存放在堆內存中,引用數據類型會在棧內存存儲數據的地址,當使用引用類型時候,在棧內存獲取堆內存地址,然后去堆內存根據地址尋找數據。多個棧內存可以使用同一個堆內存地址,所                          以當其中一個變量改變了共享的數值時,其他所有的共享該值的變量都會改變。

三、js數據如何存儲在內存中

js執行過程中,有三種類型的內存空間(代碼空間,棧空間,堆空間),代碼空間存儲可執行的代碼,基礎類型存儲在棧空間,引用類型存儲在堆空間,訪問引用類型的時候要先去棧空間獲取存儲地址。

在編譯過程中,如果js引擎判斷到一個閉包,也會在堆空間創造一個closure(fn)對象,用來保存閉包中的變量,所以閉包中的變量也會存儲在堆空間。

!注:function使用引用參數時傳入的是存儲在棧空間的地址,使用return返回,會將創建一個新堆地址將返回值存入。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM