出于好奇,如果我要像这样在JavaScript中设置一个变量:
var name = "Mango";
然后从不引用JavaScript “自动”从内存中释放变量如果发现它已经从不使用,或者会这一切都被忽略了,什么都不会发生?
提前谢谢。
答案 0 :(得分:2)
它不会被删除,请记住,JavaScript永远不会向前看"。
它永远不会跟踪将来会使用什么
对于所有JavaScript都知道,您可以打开开发人员的控制台(假设这是针对浏览器)并注入使用mango
的代码。
通常,JavaScript只会删除永远无法访问的内容。
例如,如果您要执行:
name = "Hi";
字符串" Mango"将被自动删除,因为没有引用Source。
答案 1 :(得分:1)
Local variables
,一旦超出范围,它就会自动收集垃圾。Global variables
,全局变量永远不会被GC处理,因为全局变量仍然存在。将其设置为NULL将允许收集它引用的内存。