javascript 記憶體使用管理簡單介紹
當然javascript記憶體管理是很複雜的,我們也不需要了解那麼多。
只要知道一些大體上的執行機制即可,下面就對此進行一下簡單介紹,需要的朋友可以做一下參考。
c語言類似的低階語言,有它們自己的低階記憶體管理基元,比如malloc()、free()等。但是像是javascript這樣的高階語言,記憶體管理就更為智慧,甚至讓我們感覺無需在意記憶體管理,只要集中精力於功能實現即可。
一.javascript宣告週期:
其實幾乎所有語言的生命週期都是大體如下:
(1).分配你所需要的記憶體。
(2).使用它(讀、寫)。
(3).當它不被使用時釋放 。
二.記憶體分配:
(1).變數初始化:
javascript在變數定義時分配記憶體。
[JavaScript] 純文字檢視 複製程式碼// 給數值變數分配記憶體 var n = 5; //給字元型 var webName = "螞蟻部落"; //為物件及其包含變數分配記憶體 var obj = { age: 3, a: null }; // 為陣列及其包含變數分配記憶體(就像物件) var arr = [2, null, "青島市南區"]; //為函式(可呼叫的物件)分配記憶體 function func(a) { return a + 2; } //函式表示式也能分配一個物件 ele.addEventListener('click', function () { ele.style.backgroundColor = 'blue'; }, false);
(2).通過函式呼叫實現記憶體分配:
[JavaScript] 純文字檢視 複製程式碼var d = new Date(); var e = document.createElement('div'); //分配一個DOM元素
上面的程式碼呼叫函式建立一個物件,於是也就伴隨著記憶體的分配。
(3).值的試用:
使用值的過程實際上是分配記憶體進行讀取與寫入的操作,意味著可以寫入一個變數或者一個物件的屬性值,甚至傳遞函式的引數。
(4).記憶體釋放:
大多數記憶體管理的問題都在這個階段。在這裡最艱難的任務是找到“所分配的記憶體確實已經不再需要了”。它往往要求開發人員來確定在程式中哪一塊記憶體不再需要並且釋放它。高階語言直譯器嵌入了“垃圾回收器”,主要工作是跟蹤記憶體的分配和使用,以便當分配的記憶體不再使用時,自動釋放它。
三.垃圾回收方式:
關於瀏覽器垃圾回收的方式,這裡就不多介紹了,具體可以參閱以下兩篇文章:
(1).垃圾回收的標記清除演算法詳解一章節。
(2).垃圾回收的引用計數器法詳解一章節。
相關文章
- JavaScript 簡單介紹JavaScript
- 計算機記憶體管理介紹計算機記憶體
- 簡單介紹克隆 JavaScriptJavaScript
- JavaScript 記憶體管理JavaScript記憶體
- 記憶體回收介紹記憶體
- CUDA記憶體介紹記憶體
- 簡單介紹JavaScript閉包JavaScript
- JavaScript的記憶體管理JavaScript記憶體
- JavaScript return語句簡單介紹JavaScript
- JavaScript希爾排序簡單介紹JavaScript排序
- 檔案管理簡單介紹
- javaScript 記憶體管理機制JavaScript記憶體
- javascript中的記憶體管理JavaScript記憶體
- Java記憶體模型簡介Java記憶體模型
- Java記憶體模型 - 簡介Java記憶體模型
- JavaScript 記憶體管理及垃圾回收JavaScript記憶體
- 持久記憶體指令(PMDK)簡介記憶體
- JavaScript對記憶體的使用JavaScript記憶體
- 簡單介紹nginx 變數使用Nginx變數
- 簡單介紹下各種 JavaScript 解析器JavaScript
- 記憶體管理 記憶體管理概述記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- JVM中記憶體和GC的介紹JVM記憶體GC
- STM32記憶體結構介紹和FreeRTOS記憶體分配技巧記憶體
- 簡單介紹redux的中介軟體Redux
- jvm堆記憶體和GC簡介JVM記憶體GC
- 簡單VC記憶體檢測記憶體
- 簡單的記憶體取證記憶體
- 簡單介紹nginx反向代理及使用Nginx
- C++記憶體管理:簡易記憶體池的實現C++記憶體
- RPC簡單介紹RPC
- Python簡單介紹Python
- KVM簡單介紹
- RMI簡單介紹
- HTML簡單介紹HTML
- HTML 簡單介紹HTML
- CSS 簡單介紹CSS
- ajax簡單介紹
- SVG簡單介紹SVG