在我整个秋招面试的过程中,这个问题被问的次数能排前三。第一次被问的时候回答的不完整,不过面试官很好,有一步步的提醒我,再次感谢可爱的面试官。
首先是内存泄露:可以理解为应用程序不再需要占用内存的时候,由于某些原因,内存没有被操作系统或可用内存池回收。
然后是4中常见的内存泄露:
1. 意外导致的全局变量:未定义的变量会变成全局变量
2. 闭包:闭包创建后作用域是共享的,外层函数内创建的变量无法释放,会造成内存泄露
3. 计时器:计时器在不需要的时候,一定要明确的移除
4. 删除掉的DOM节点的引用:例如一个按钮,你开始的时候为它添加一个click事件,当你删除该按钮后,这个事件依然会存在,也会造成内存泄露。