js的數據類型有哪些,值是如何存儲的?

js的數據類型有基本類型和引用類型

1.基本數據類型(BS3N)

1.Boolean(B)
2.String(S)
3.underfined(N)
4.Null(N)
5.Number(N)
6.symbol(ES6的)
基本數據類型都儲存在棧中(stack),棧是有結構的,每個區塊都是按照後進先出的方式次序存放,基本類型的數據相對是比較穩定的,佔的內存也比較小,所有尋找速度比較快,如果基本類型複製的話,棧中重新開闢個新的內存空間來儲存新複製的新值,所以兩者是獨立的,沒有任何關聯!

2.引用數據類型(複雜類型)

1.Array
2.Object
堆是沒有結構的,數據可以任意存放,引用類型的值是儲存在堆中(heap),但是棧內存中保存着一個堆內存的對象的引用,所以我們常常實際操作的是引用而不是操作實際的對象!你可以這麼理解,棧中保存着一個地址,這個地址指向堆中的對象,如果複製的是引用類型,那麼複製的是棧內存中的引用地址,兩個引用地址指向的還是同一個對象!

3.爲什麼基本數據類型存在棧中,而引用數據類型存在堆中呢?

1.基本數據類型比較穩定,大小基本是固定的,佔用的內存比較小
2.堆比棧大,棧的速度比隊快
3.堆是無序的,棧的有序的
4.引用數據類型的大小的不可控的,動態的,所以儲存在堆中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章