V8垃圾回收

  1. 引用计数垃圾回收:一个对象会被认为可以被垃圾回收当没有被引用到时。如果存在循环引用,就会发生问题。
  2. 标记清除法[主要]:判断一个对象是否可以被使用。
    1. (离开某个函数环境时?)垃圾回收器将会给全局变量一个列表
    2. 然后将所有全局变量以及它们引用的变量标志成“active”
    3. 回收所有没有被标记成active的对象内存

垃圾回收是不可预测的。

####内存泄漏:不需要的内存没有被回收

  1. 给未声明的变量赋值时(没有用var)/错误的使用this,会隐式声明一个全局变量
  2. 监听器引用的对象,现代浏览器发现dom节点无法引用的时候也会移除监听器,但ie6不会
  3. 闭包
  4. 对表格单一单元格的引用会使整个表格被保存在内存中