【发布时间】:2013-12-23 09:26:18
【问题描述】:
假设在全局窗口范围内如下:
var myvar = "initial value";
//some other code
myvar = "new value";
分配新值后旧值是否会从内存中销毁? 是否会被垃圾收集?我的分析测试表明内存立即被释放。
在函数范围内声明时同样的问题。
var myfunct = function(){
var myvar = "initial value";
//some other code
myvar = "new value";
}
PS:一般不需要回答垃圾回收问题。我已经了解它是如何工作的......我只是在这个问题的内存重新分配方面之后。我知道全局变量永远不会被收集。但我很好奇内存重新分配是否也会从根本上得到不同的处理。
【问题讨论】:
-
这是一个取决于每个浏览器的实现细节,它与javascript(ECMAScript)本身无关。参与浏览器设计细节的人可能知道,但他们不太可能访问这里。
-
@RobG 我显然很清楚这些观察结果。 GC 收集方法可能会有所不同,但我不认为在这种情况下,立即发布的内容因引擎而异...
标签: javascript memory-management garbage-collection