Skip to content

JavaScript 内存管理

内存分配

JavaScript 中创建变量时会自动分配内存

数据类型内存位置说明
基本类型数据存储在空间
( Stack )
数据大小固定,不能被修改
直接将值存放在栈空间中,可直接通过值访问
引用类型数据存储在空间
( Heap )
数据大小不固定,可以修改
在栈空间中存放的是一个指向堆空间中的地址,可通过引用访问
多个引用可指向同一个地址,一个改变则全部都变

内存泄露

内存泄露是指程序中已经分配的内存未能及时释放

未及时释放的变量会持续占用内存,容易导致响应变慢以及应用崩溃

常见的内存泄露原因

  • 过多的全局变量
  • 过多的无效 DOM
  • 过多的缓存未被释放
  • 过多的闭包未被释放
  • 过多的定时器或回调未被释放
  • 死循环、长时间运行的代码