bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

JavaScript中垃圾回收機制詳解-創(chuàng)新互聯(lián)

JavaScript中垃圾回收機制詳解?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的平川網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

   JavaScript 具有自動垃圾收集機制,也就是說,執(zhí)行環(huán)境會負責管理代碼執(zhí)行過程中使用的內(nèi)存。

  在編寫 JavaScript 程序時,開發(fā)人員不用再關心內(nèi)存使用問題,所需內(nèi)存的分配以及無用內(nèi)存的回收完全實現(xiàn)了自動管理。

  這種垃圾收集機制的原理其實很簡單:找出那些不再繼續(xù)使用的變量,然后釋放其占用的內(nèi)存。為此,垃圾收集器會按照固定的時間間隔(或代碼執(zhí)行中預定的收集時間), 周期性地執(zhí)行這一操作。

  具體到瀏覽器中的實現(xiàn),則通常有兩個策略,分別為標記清除和引用計數(shù)。

一、標記清除

  JavaScript 中最常用的垃圾收集方式是標記清除(mark-and-sweep)。當變量進入環(huán)境(例如,在函數(shù)中聲明一個變量)時,就將這個變量標記為“進入環(huán)境”。而當變量離開環(huán)境時,則將其標記為“離開環(huán)境”。

  垃圾收集器在運行的時候會給存儲在內(nèi)存中的所有變量都加上標記。可以使用任何標記方式,比如,可以通過翻轉某個特殊的位來記錄一個變量何時進入環(huán)境, 或者使用一個“進入環(huán)境的”變量列表及一個“離開環(huán)境的”變量列表來跟蹤哪個變量發(fā)生了變化。

  然后,它會去掉環(huán)境中的變量以及被環(huán)境中的變量引用的變量的標記。而在此之后再被加上標記的變量將被視為準備刪除的變量,原因是環(huán)境中的變量已經(jīng)無法訪問到這些變量了。

  最后,垃圾收集器完成內(nèi)存清除工作,銷毀那些帶標記的值并回收它們所占用的內(nèi)存空間。

二、引用計數(shù)

  另一種不太常見的垃圾收集策略叫做引用計數(shù)(reference counting)。引用計數(shù)的含義是跟蹤記錄每個值被引用的次數(shù)。

  當聲明了一個變量并將一個引用類型值賦給該變量時,則這個值的引用次數(shù)就是 1。 如果同一個值又被賦給另一個變量,則該值的引用次數(shù)加 1。相反,如果包含對這個值引用的變量又取得了另外一個值,則這個值的引用次數(shù)減 1。

  當這個值的引用次數(shù)變成 0 時,則說明沒有辦法再訪問這個值了,因而就可以將其占用的內(nèi)存空間回收回來。

  這樣,當垃圾收集器下次再運行時,它就會釋放那些引用次數(shù)為零的值所占用的內(nèi)存。

  存在的問題:只要在 IE 中涉及 COM(Component Object Model,組件對象模型)對象,就會存在循環(huán)引用的問題。如下面代碼所示:

var element = document.getElementById("some_element");
var myObject = new Object();
myObject.element = element;
element.someObject = myObject;

網(wǎng)頁名稱:JavaScript中垃圾回收機制詳解-創(chuàng)新互聯(lián)
本文URL:http://vcdvsql.cn/article42/ddjohc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號關鍵詞優(yōu)化標簽優(yōu)化ChatGPT全網(wǎng)營銷推廣建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設