JS垃圾回收问题
提到垃圾回收机制
首先我们要知道垃圾是怎么产生的
这跟 JS变量的生命周期 有紧密的联系
JS 变量生命周期在它 声明时 初始化。
若开始不定义变量,则为全局变量
(这个在语法上是不规范的,正常不管你是全局变量还是局部变量,都要定义)
局部变量:在函数执行完毕后销毁。
全局变量:在页面关闭后销毁。
浏览器有自己的垃圾回收机制(标记清除 和 引用计数)
可以参考这篇文章: JS内存泄漏与垃圾回收机制
不过只是针对局部变量和未被引用的变量
如果是被引用过的全局变量,页面关闭之前就不会自动销毁
这就需要我们手动清除
var a = ['shimh','javaScript']
console.log(a.length)
a = null // 解除变量a的引用
我们平时开发应尽可能避免使用全局变量
使用用局部变量既能避免变量冲突
又能在调用后及时回收