首先大家需了解的是什么是js内存泄露,在JS中内存泄漏是指程序中使用的内存,不再被需要却没有被释放,最终导致浏览器或者Node.js进程使用的内存越来越大,直到程序崩溃或者系统运行缓慢。
- 意外的全局变量
由于使用未声明的变量,而意外的创建了一个全局变量,而使这个变量一直留在内存中无法被回收。
function memory_leak_demo(){
name = 'dream'; // 这里name变量是一个意外的全局变量,因为前面没有var等修饰词声明
console.log(name);
}
memory_leak_demo(); //执行到未声明的变量时,就会导致内存泄漏
- 没有清理的DOM元素引用
获取一个 DOM 元素的引用,而后面这个元素被删除,由于一直保留了对这个元素的引用,所以它也无法被回收。
- 定时器未清除
在JavaScript中使用setInterval()或setTimeout()函数时,必须确保在不需要它们时清除这些定时器。
- 闭包
由于闭包会使得函数中的局部变量会被保存在内存中,内存的消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,解决方法是,在退出函数之前,将不使用的局部变量全部删除。
发表评论
评论列表(0)