摘要:引用數據類型及堆內存引用數據類型是保存在堆內存中的對象,他的大小是不固定的。基礎數據類型在變量對象里可以直接對應對應的值,而引用數據類型是存儲在堆里的,在變量對象中對應的是堆內存的地址。因為我們修改本質上是修改了堆內存里的數據。
? ??? ??因為以前前端開發跟數據存儲打交道比較少,javascript又具有自動垃圾回收機制。數據結構以及存儲相關的概念,其實是很容易被前端er忽略的。但是因為現在大前端的趨勢,其實慢慢地,這些概念對于一個前端er來說也成了必須要掌握的技巧。
? ??? ??了解這些概念,對于我們去理解基本數據類型,引用數據類型,閉包,原型,原型鏈,事件循環等都有很好的促進作用。
? ??? ??接下來,我們先了解堆(heap),棧(stack),隊列(queue)這三種數據結構,再來分析js數據存儲相關的概念。
? ? ? ? 1 數據結構
? ? ? ? 1.1 棧 棧是一種先進后出的數據結構。
? ??? ??數據進入棧中之后,會被壓到棧底。類似于我們平常用的羽毛球球管的概念,第一個進去的是在球管的管低,第一個出來的是位于球管管頂的最后一個進去的羽毛球。 這個概念會在我們之后需要講到的執行上下文中用到。
? ? ? ??
? ? ? ? 1.2 堆 是一種樹狀的數據結構,跟書架類似。
? ??? ??我們在書架取書的時候是不需要知道書的內容的,只需要知道書名就知道需要取的是哪本書了。
? ? ? ? 1.3 隊列 是一種先進先出(FIFO)的數據結構。
? ? ? ? 就像我們過安檢,誰排第一個誰就第一個接受安檢。這塊的概念主要是在事件循環機制中用到,可以更好的幫我們理解事件循環機制。
? ? ? ? 好啦,介紹完我們的基本數據結構,接下來就要詳細介紹js中的數據存儲方式了。
? ? ? ? 2 js數據存儲
? ? ? ? 2.1 基礎數據類型及變量對象
? ? ? ? 我們都知道js中基礎數據類型包括undefined,null,boolean,string,number。這些數據類型都是存儲在變量對象中的,我們都是按值訪問,可以直接操作保存在變量中的值。
? ? ? ? 其實,變量對象嚴格意義上來說也是存儲在對內存中的,但是為了方便理解,我們還是需要對他和堆內存做區分。
? ? ? ? 2.2 引用數據類型及堆內存
? ? ? ? 引用數據類型是保存在堆內存中的對象,他的大小是不固定的。而js是不允許直接操作對象的堆內存空間的。我們實際操作對象的時候,是在操作對象的引用。所謂引用,可以理解成堆內存內對象的地址,給外界一個操作的入口。就像我們平常寫信,郵遞員都是按照地址去派發信件的。
? ? ? ? 2.3 數據存儲圖解
? ? ? ? 如下所示代碼,我們定義了4個基礎數據類型,定義了2個引用數據類型。基礎數據類型在變量對象里可以直接對應對應的值,而引用數據類型是存儲在堆里的,在變量對象中對應的是堆內存的地址。
? ? ? ? 而要真正理解引用數據類型,我們可以看下下面的賦值操作。
? ? ? ? 因為a是基礎數據類型,c是引用數據。c會有一個引用指向在堆里面真正的對象。
現在,我們進行復制操作,把a的值復制給b的時候,是把a真正的值賦值給了b。但是,將c復制給d的時候,是把c的引用賦值給了d。如代碼下方的圖示。
? ??? ??因此,當我們修改b的值的時候,是不會影響a的值,但是修改c的值的時候,會影響d的值。因為我們修改c本質上是修改了堆內存里的數據。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104737.html
摘要:相當于相當于相當于基礎類型不屬于包裝的對象類型小結數據類型是每一個語言的基礎由于屬于弱類型腳本語言因此數據只有在賦值后才能直到變量的數據類型下一次我們具體介紹對象的概念 前言 在《你所不知道的javascript上篇》書籍 以及《javascript權威指南》等書籍里面, 均有介紹js的數據類型,對象,原型,繼承。結合工作經驗, 以及借用一些開源庫和框架的源碼, 進行一次梳理。 首先介...
摘要:作用標準模式與兼容模式各有什么區別聲明位于位于文檔中的第一行,處于標簽之前。又稱內核及以上版本,等內核及以上。存儲大小數據大小不能超過。可以防止惡意刷票論壇灌水有效防止對某一個特定注冊用戶用特定程序暴力方式進行不斷的登陸嘗試。 HTMLDoctype作用?標準模式與兼容模式各有什么區別?(1)、聲明位于位于HT...
摘要:年求職面經及總結我的求職之路差不多走到盡頭了感覺真是精疲力盡了把這大半年的經歷和面試總結寫下來希望能給和我一樣在求職路上煎熬的人一點幫助先說背景微電子科學與工程專業學過兩門和相關的課程語言和單片機這個專業的唯一好處就是大部分人并不知道這個專 18年求職面經及總結 我的求職之路差不多走到盡頭了,感覺真是精疲力盡了.把這大半年的經歷和面試總結寫下來,希望能給和我一樣在求職路上煎熬的人一點幫...
閱讀 2356·2021-11-25 09:43
閱讀 2866·2021-11-24 09:39
閱讀 2933·2019-08-30 11:10
閱讀 1138·2019-08-29 16:34
閱讀 603·2019-08-29 13:25
閱讀 3362·2019-08-29 11:21
閱讀 2864·2019-08-26 11:39
閱讀 2398·2019-08-26 11:34