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記憶體
- 記憶體管理簡介記憶體
- JavaScript 簡單介紹JavaScript
- 計算機記憶體管理介紹計算機記憶體
- 簡單介紹克隆 JavaScriptJavaScript
- javascript物件簡單介紹JavaScript物件
- javascript this指向簡單介紹JavaScript
- javascript加密簡單介紹JavaScript加密
- javascript匿名函式的使用簡單介紹JavaScript函式
- JavaScript 記憶體管理JavaScript記憶體
- JavaScript記憶體管理JavaScript記憶體
- CUDA記憶體介紹記憶體
- 記憶體回收介紹記憶體
- 簡單介紹JavaScript閉包JavaScript
- JavaScript希爾排序簡單介紹JavaScript排序
- javascript constructor簡單介紹JavaScriptStruct
- javascript建立物件簡單介紹JavaScript物件
- javascript的this用法簡單介紹JavaScript
- javascript arguments用法簡單介紹JavaScript
- javascript 變數簡單介紹JavaScript變數
- javascript簡單模板引擎介紹JavaScript
- javascript作用域簡單介紹JavaScript
- 檔案管理簡單介紹
- JavaScript的記憶體管理JavaScript記憶體
- JVM記憶體管理和垃圾回收機制介紹JVM記憶體
- JavaScript return語句簡單介紹JavaScript
- javascript鏈式呼叫簡單介紹JavaScript
- javascript除法運算簡單介紹JavaScript
- javascript &&和||運算子簡單介紹JavaScript
- javascript方法過載簡單介紹JavaScript
- javascript遞迴概念簡單介紹JavaScript遞迴
- JavaScript this指向解綁簡單介紹JavaScript
- javascript陣列操作簡單介紹JavaScript陣列
- javascript with()語句用法簡單介紹JavaScript
- javascript匿名函式簡單介紹JavaScript函式
- javascript的in運算子簡單介紹JavaScript
- javascript變數宣告簡單介紹JavaScript變數
- javascript氣泡排序簡單介紹JavaScript排序