<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script> //1.全局变量引起的内存泄漏 function show(){ name='fei';//name是全局变量,不会被回收 } //解决方法:加上use strict使用严格模式,会阻止创建的全局变量 //2.闭包引起的内存泄漏 function show(){ let aBtn=document.getElementsByTagName('input'); aBtn.onclick=function(){//闭包 //代码 } } //闭包会保存函数中的局部变量,不能释放。 //解决方法:将事件处理函数定义在外部,或删除dom的引用 //1.将事件处理函数定义在外部 function handler(){ //代码 } function show(){ let aBtn=document.getElementsByTagName('input'); aBtn.onclick=handler; } //2.删除dom的引用 function show(){ let aBtn=document.getElementsByTagName('input'); aBtn.onclick=function(){ //代码 } aBtn=null; } //3.定时器没有被清除 //4.没有清理dom元素的引用 </script> </head> <body> </body> </html>