一.什么是内存泄漏
内存泄漏是指:内存泄漏页称作"
存储泄露",用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元.直到程序结束.(其实说白了就是该内存空间使用完毕后其未回收)即所谓内存泄漏.
二.哪些操作会操作内存泄漏
1.垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量.如果一个独享的引用数量为0(没有其他对象引用过该对象),或对该对象的唯一引用是循环的,那么该对象的内存即可回收
2.setTimeout的第一个参数使用字符串而非函数的话,会引发内存泄漏
3.闭包\控制台日志\循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)
三.避免策略:
1. 减少不必要的全局变量,或者生命周期较长的对象,及时对无用的数据进行垃圾回收(即赋值为null);
2. 注意程序逻辑,避免 “死循环” 之类的 ;
3. 避免创建过多的对象 原则:不用了的东西要记得及时归还。
4. 减少层级过多的引用