# 内存管理

# 内存生命周期

  • 内存分配
    • 声明变量、函数等
  • 内存使用
    • 读写内存,使用变量、函数等
  • 内存回收
    • 使用完毕,由垃圾回收机制自动回收不再使用的内存

# JS垃圾回收机制

  • 引用计数法
    • 看一个对象是否有指向它的引用(如果没有其他对象指向它,则说明不再被需要)
  • 标记清除法
    • 将“不再使用的对象”标记为“无法到达的对象”

# 常见的内存泄露

  • 全局变量
  • 未被清理的定时器和回调函数
  • 闭包(一个有权访问包含其的外部函数的变量的内部函数)