#JavaScript
======================================================
垃圾回收机制
| 项目 | 内容 |
|---|---|
| 定义 | JavaScript 中内存的分配和回收都是自动完成的,内存在不使用的时候会被垃圾回收器自动回收 |
| 垃圾回收机制的作用 | 找出不再使用的变量,然后释放掉它们占用的内存 |
| 内存泄漏 | 内存泄漏是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果 |
======================================================
垃圾回收策略
| 垃圾回收策略 | 描述 |
|---|---|
| 标记清除 | 标记清除是目前主流的垃圾回收算法,当变量进入环境时,就标记这个变量为"进入环境",当变量离开环境时,就标记为"离开环境" |
| 引用计数 | 引用计数是跟踪记录每个值被引用的次数,当一个值的引用次数变为 0 时,就表示这个值不再被需要,因此可以将其占用的内存空间回收 |
======================================================
常见内存泄漏情况
| 常见内存泄漏情况 | 描述 |
|---|---|
| 意外的全局变量 | 全局变量不会被回收,除非页面被关闭 |
| 被遗忘的计时器或回调函数 | 定时器或回调函数未被清除时,其引用的变量也不会被回收 |
| 闭包 | 闭包会保持对外部变量的引用,导致这些变量不会被回收 |
======================================================
