JS垃圾回收问题

JS垃圾回收问题

提到垃圾回收机制
首先我们要知道垃圾是怎么产生的

这跟 JS变量的生命周期 有紧密的联系

JS 变量生命周期在它 声明时 初始化。

若开始不定义变量,则为全局变量
(这个在语法上是不规范的,正常不管你是全局变量还是局部变量,都要定义)

局部变量:在函数执行完毕后销毁。
全局变量:在页面关闭后销毁。

浏览器有自己的垃圾回收机制(标记清除引用计数
可以参考这篇文章: JS内存泄漏与垃圾回收机制
不过只是针对局部变量和未被引用的变量

如果是被引用过的全局变量,页面关闭之前就不会自动销毁

这就需要我们手动清除


var a = ['shimh','javaScript']
console.log(a.length)
a = null  // 解除变量a的引用

我们平时开发应尽可能避免使用全局变量
使用用局部变量既能避免变量冲突
又能在调用后及时回收

猜你喜欢

转载自blog.csdn.net/weixin_34403976/article/details/98099220
今日推荐