談談 JS 垃圾回收機制(day03)

垃圾回收

JavaScript 中的內存管理是自動執行的,並且是不可見的。咱們建立基本類型、對象、函數……全部這些都須要內存。

當再也不須要某樣東西時會發生什麼? JavaScript 引擎是如何發現並清理它?

可達性

JavaScript 中內存管理的主要概念是可達性。

簡單地說,「可達性」 值就是那些以某種方式可訪問或可用的值,它們被保證存儲在內存中。

1. 有一組基本的固有可達值,因爲顯而易見的緣由沒法刪除。例如:

本地函數的局部變量和參數
當前嵌套調用鏈上的其餘函數的變量和參數
全局變量
還有一些其餘的,內部的
這些值稱爲根。

2. 若是引用或引用鏈能夠從根訪問任何其餘值,則認爲該值是可訪問的。

例如,若是局部變量中有對象,而且該對象具備引用另外一個對象的屬性,則該對象被視爲可達性。

相關文章
相關標籤/搜索