1、 作用域
作用域是js 編程中一個重要的機制,它在內存管理中起着至關重要的作用。
在js中能形成作用域的有函數的調用,全局作用域,with語句。
2、 作用域鏈
對某一變量訪問時,查找的原則是:在本函數作用域內查找,沒找到,便到上一層去找。
3、 閉包
它是一種技術,讓外層作用域訪問內層作用域。
4、 內存管理算法
引用計數算法
引用計數算法定義“內存不再使用”的標準很簡單,就是看一個對象是否有指向它的引用。如果沒有其他對象指向它了,說明該對象已經不再需了。
致命問題:循環引用
正是因爲有這個嚴重的缺點,這個算法在現代瀏覽器中已經被下面要介紹的標記清除算法所取代了。但絕不可認爲該問題已經不再存在了,因爲還佔有大量市場的IE6、IE7使用的正是這一算法。
標記清除算法
標記清除算法將“不再使用的對象”定義爲“無法達到的對象”。簡單來說,就是從根部(在JS中就是全局對象)出發定時掃描內存中的對象。凡是能從根部到達的對象,都是還需要使用的。那些無法由根部出發觸及到的對象被標記爲不再使用,稍後進行回收。
參考文章:http://www.cnblogs.com/mliudong/p/3635294.html
http://www.jianshu.com/p/84a8fd5fa0ee