原理
找到不再被使用的变量,然后释放其占用的内存,但这个过程不是时时的,因为其开销比较大,
所以垃圾回收器会按照固定时间间隔周期性的执行

回收方式
a.标记清除
当变量进入环境时,将这个变量标记为“进入环境”;当变量离开环境时,则将其标记为“离开环境”。
标记“离开环境”的就回收内存
b.引入计数(低级浏览器)
当变量声明,第一次赋值时记为1,然后当这个变量值改变时,记录为0,将计数为0的回收

内存泄露
a.意外的全局变量引起的内存泄露
原因: 全局变量不会被回收
解决:使用严格模式避免
b.闭包引起的
原因: 活动对象被引用,使闭包内的变量不会被释放
解决: 将活动对象赋值为null
c.被清理的DOM元素的引用
原因: 虽然DOM被删掉了,但对象中还存在对DOM的引用
解决: 将对象赋值为null
d.被遗忘的定时器或回调
原因: 定时器内部实现闭包,回调也是闭包
解决: 清理定时器clearInterval、null

最新文章

  1. 学习EF之贪婪加载和延迟加载(1)
  2. zabbix3.2安装graphtree3.0.4
  3. MINA经典入门例子----Time Server
  4. PHP 优化详解
  5. python 知识 rstrip,strip,lstrip
  6. Java中的异常处理机制的简单原理和应用
  7. 心愿:做一个精简版MFC
  8. BestCoder Round #49
  9. NPOI.dll 用法。单元格,样式,字体,颜色,行高,宽度。读写excel
  10. 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载
  11. Python里如何实现C中switch...case的功能
  12. java验证控制的方法
  13. MySQL IO线程及相关参数调优
  14. Sqoop介绍
  15. [POI2006]ORK-Ploughing
  16. Flash硬件原理
  17. gcc4.9.1新特性
  18. BFC的个人理解
  19. ConcurrentHashMap 分析
  20. shizhong

热门文章

  1. 【LeetCode OJ 34】Search for a Range
  2. HDU 4585 Shaolin(STL map)
  3. 又见关系并查集 以POJ 1182 食物链为例
  4. POJ 2516 Minimum Cost (最小费用最大流)
  5. 转发真阿当老师的一片文章 受益匪浅 (出处:http://cly84920.blog.163.com/blog/static/24750013320158203575958/)
  6. Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD
  7. angularjs 自定义服务
  8. 41.AngularJS 服务(Service)
  9. [P3097] [USACO13DEC] [BZOJ4094] 最优挤奶Optimal Milking 解题报告(线段树+DP)
  10. kotlin官方文档-1.0入门