如果变量从未使用过,它会自动从内存中释放吗?
Would a variable automatically get released from memory if it was never used?
出于好奇,如果我要像这样在 JavaScript 中设置一个变量:
var name = "Mango";
然后 从不 引用它会 JavaScript "automatically" 如果发现变量从内存中释放它如果从未被使用过,或者这会被一起忽略并且什么也不会发生吗?
提前致谢。
不会被删除,记住JavaScript永远不会"looks ahead"。
它永远不会跟踪将来会使用什么。
就 JavaScript 所知,您可以打开开发人员的控制台(假设这是针对浏览器的)并注入确实使用 mango
.
的代码
一般来说,JavaScript只会删除永远达不到的东西。
例如,如果您要执行:
name = "Hi";
字符串 "Mango" 将被自动删除,因为没有引用它,Source。
- 如果它是
Local variables
,它会在超出范围后自动收集垃圾。
- 如果我们谈论
Global variables
,全局变量永远不会被 GC 处理掉,因为全局变量仍然存在。将它设置为 NULL 将允许收集它引用的内存。
出于好奇,如果我要像这样在 JavaScript 中设置一个变量:
var name = "Mango";
然后 从不 引用它会 JavaScript "automatically" 如果发现变量从内存中释放它如果从未被使用过,或者这会被一起忽略并且什么也不会发生吗?
提前致谢。
不会被删除,记住JavaScript永远不会"looks ahead"。
它永远不会跟踪将来会使用什么。
就 JavaScript 所知,您可以打开开发人员的控制台(假设这是针对浏览器的)并注入确实使用 mango
.
的代码
一般来说,JavaScript只会删除永远达不到的东西。
例如,如果您要执行:
name = "Hi";
字符串 "Mango" 将被自动删除,因为没有引用它,Source。
- 如果它是
Local variables
,它会在超出范围后自动收集垃圾。 - 如果我们谈论
Global variables
,全局变量永远不会被 GC 处理掉,因为全局变量仍然存在。将它设置为 NULL 将允许收集它引用的内存。