日期:2014-05-16  浏览次数:20401 次

关于垃圾收集器的疑惑
问下,javascript的垃圾收集器肯定能收集对象,但是垃圾收集器可以收集基本类型的变量吗?也是一段时间一段时间的收集吗?

------解决方案--------------------
不管什么类型的变量,只要没有被全局变量(包括添加到页面的html元素对象)或其他在生存期的变量持有,就可以自动释放内存
------解决方案--------------------
探讨
我说的是垃圾收集器如何收集的问题。

------解决方案--------------------
楼主也可以去了解下JS的闭包,这样会比较了解
------解决方案--------------------
主流浏览器使用的都是标记清除法,每个变量在进入一个执行环境后会被标记为“进入环境”,离开执行环境后该标记会被清除,以便垃圾收集器收回内存。
全局执行环境是最外围的执行环境,所以全局变量最后才会被清除,因此不应该定义过多的全局变量。
每个函数都有一个执行环境,函数执行完毕后其中的局部变量就会被销毁。
建议你看下JavaScript高级程序设计 一书