如果从未使用变量,变量会自动从内存中释放吗?

时间:2016-06-12 15:22:48

标签: javascript variables memory-management garbage-collection v8

出于好奇,如果我要像这样在JavaScript中设置一个变量:

var name = "Mango";

然后从不引用JavaScript “自动”从内存中释放变量如果发现它已经从不使用,或者会这一切都被忽略了,什么都不会发生?

提前谢谢。

2 个答案:

答案 0 :(得分:2)

它不会被删除,请记住,JavaScript永远不会向前看"。
它永远不会跟踪将来会使用什么 对于所有JavaScript都知道,您可以打开开发人员的控制台(假设这是针对浏览器)并注入使用mango的代码。
通常,JavaScript只会删除永远无法访问的内容。

例如,如果您要执行:

name = "Hi";

字符串" Mango"将被自动删除,因为没有引用Source

答案 1 :(得分:1)

  • 如果它是Local variables,一旦超出范围,它就会自动收集垃圾。
  • 如果我们谈论Global variables,全局变量永远不会被GC处理,因为全局变量仍然存在。将其设置为NULL将允许收集它引用的内存。