哪些情况会造成内存泄漏

25 阅读1分钟

第一种情况就是使用未声明的变量,这样会意外创造一个全局变量,这种变量会一直在内存中无法被回收,直至页面关闭。

第二种情况就是设置了setinterval,settimeout定时器,而忘记取消他,可能会长时间运行占用内存,而且有外部变量引用的话,会一直占用内存,无法被回收

第三种情况就是获取一个dom元素的不正当引用会导致内存泄漏,比如说获取了一个dom元素的引用但是后面这个dom元素被移除了,此时被移除的dom元素依然占用着内存,无法被回收,可能导致内存泄漏。

第四种情况就是使用了一些不合理的闭包从而导致某些变量一直被留在内存中。比如说闭包内部引用了外部变量bigdata。然后执行闭包函数,执行完后这块内存不会被回收,会一直占着内存,如果长期持有有可能造成内存泄漏,除非关闭这个页面,内存才会释放。