标签:浏览器 回收 javascript内存管理 gc
1、 作用域
作用域是js 编程中一个重要的机制,它在内存管理中起着至关重要的作用。
在js中能形成作用域的有函数的调用,全局作用域,with语句。
2、 作用域链
对某一变量访问时,查找的原则是:在本函数作用域内查找,没找到,便到上一层去找。
3、 闭包
它是一种技术,让外层作用域访问内层作用域。
4、 内存管理算法
引用计数算法
引用计数算法定义“内存不再使用”的标准很简单,就是看一个对象是否有指向它的引用。如果没有其他对象指向它了,说明该对象已经不再需了。
致命问题:循环引用
正是因为有这个严重的缺点,这个算法在现代浏览器中已经被下面要介绍的标记清除算法所取代了。但绝不可认为该问题已经不再存在了,因为还占有大量市场的IE6、IE7使用的正是这一算法。
标记清除算法
标记清除算法将“不再使用的对象”定义为“无法达到的对象”。简单来说,就是从根部(在JS中就是全局对象)出发定时扫描内存中的对象。凡是能从根部到达的对象,都是还需要使用的。那些无法由根部出发触及到的对象被标记为不再使用,稍后进行回收。
参考文章:http://www.cnblogs.com/mliudong/p/3635294.html
http://www.jianshu.com/p/84a8fd5fa0ee
本文出自 “时光” 博客,请务必保留此出处http://timeblog.blog.51cto.com/8650972/1611478
标签:浏览器 回收 javascript内存管理 gc
原文地址:http://timeblog.blog.51cto.com/8650972/1611478