JS内存泄漏

1.什么是内存泄漏?

本质上讲,内存泄漏就是当变量不再被需要的时候,由于某种原因,它所占用的内存空间无法被释放。

2.JavaScript中存在两种变量:

(1)全局变量

(2)局部变量

  全局变量的生命周期会一直到页面卸载,而局部变量声明在函数中,它的生命周期从执行函数开始,直到函数执行结束。在这个过程中,局部变量会在栈或栈上被分配相应的内存去存储它们的值,函数执行结束,这些局部变量也不再被使用,所以它们所占用的内存也就被释放。但有一种情况:局部变量所占用的内存并不会随着函数执行结束而被回收,那就是局部变量被函数外部的变量所使用,其中一种情况就是闭包。

3.常见的内存泄漏有哪些?
(1)闭包
(2)全局变量
(3)未销毁的定时器和回调函数
(4)未销毁的DOM引用

你可能感兴趣的:(JavaScript)