更新時間:2021-07-21 來源:黑馬程序員 瀏覽量:
定義:指一塊被分配的內(nèi)存既不能使用,又不能回收,直到瀏覽器進程結(jié)束。
像 C 這樣的編程語言,具有低級內(nèi)存管理原語,如 malloc()和 free()。開發(fā)人員使用這些原語顯式地對操作系統(tǒng)的內(nèi)存進行分配和釋放。
而 JavaScript 在創(chuàng)建對象(對象、字符串等)時會為它們分配內(nèi)存,不再使用對時會“自動”釋放內(nèi)存,這個過程稱為垃圾收集。
內(nèi)存生命周期中的每一個階段:
分配內(nèi)存 —? 內(nèi)存是由操作系統(tǒng)分配的,它允許您的程序使用它。在低級語言(例如 C 語言)中,這是一個開發(fā)人員需要自己處理的顯式執(zhí)行的操作。然而,在高級語言中,系統(tǒng)會自動為你分配內(nèi)在。
使用內(nèi)存 — 這是程序?qū)嶋H使用之前分配的內(nèi)存,在代碼中使用分配的變量時,就會發(fā)生讀和寫操作。
釋放內(nèi)存 — 釋放所有不再使用的內(nèi)存,使之成為自由內(nèi)存,并可以被重利用。與分配內(nèi)存操作一樣,這一操作在低級語言中也是需要顯式地執(zhí)行。
四種常見的內(nèi)存泄漏:全局變量,未清除的定時器,閉包,以及 dom 的引用
全局變量 不用 var 聲明的變量,相當于掛載到 window 對象上。如:b=1; 解決:使用嚴格模式
被遺忘的定時器和回調(diào)函數(shù)
閉包
沒有清理的 DOM 元素引用
JavaScript數(shù)據(jù)類型:javascript數(shù)據(jù)類型有哪些?