内存泄漏
约 342 字大约 1 分钟
2025-03-11
一、简介
JavaScript 内存泄漏指的是在执行一个长期运行的应用程序时,由于缺乏适当的垃圾回收机制,导致不再需要的内存无法被释放,从而累积占用过多内存,最终导致应用崩溃或性能下降的情况。
二、常见的内存泄漏
1、意外的全局变量
未声明的变量会被自动升级为全局对象,作用域为 window 或者整个窗口。 如果不小心忘记了 var、let、const,可能创建意外的全局变量。
function fn() {
a = "global variable";
}
/// 作用域等同于 window.a
fn();
2、未解除的事件监听器
如果一个 DOM 元素被移除,但相关的事件监听器仍然保持在内存中,就会发生内存泄漏。
3、闭包
如果一个函数内部定义了另一个函数,并且这个内部函数引用了外部函数的变量,那么即使外部函数已经执行完毕,这些变量也不会被垃圾回收,因为内部函数依然可以访问它们。
4、未移除的定时器或回调函数
设置了定时器或者异步回调函数,但是没有在不需要时清除它们。
5、DOM 引用没有清理
更新日志
2025/8/24 08:17
查看所有更新日志
e7112
-1于