JavaScript garbage collection when variable goes out of scope

Does JavaScript support garbage collection?

For example, if I use:

function sayHello (name){
    var myName = name;
    alert(myName);
}

do I need to use "delete" to delete the myName variable or I just ignore it?


忽略它 - 在sayHello函数完成之后,myName落在范围之外并被gc化。


no.
delete is used to remove properties from objects, not for memory management.


JavaScript supports garbage collection. In this case, since you explicitly declare the variable within the function, it will (1) go out of scope when the function exits and be collected sometime after that, and (2) cannot be the target of delete (per reference linked below).

Where delete may be useful is if you declare variables implicitly, which puts them in global scope:

function foo()
{
    x = "foo";   /* x is in global scope */
    delete x;
}

However, it's a bad practice to define variables implicitly, so always use var and you won't have to care about delete .

For more information, see: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/delete_Operator

链接地址: http://www.djcxy.com/p/27184.html

上一篇: JavaScript垃圾收集器处理全局变量吗?

下一篇: 当变量超出范围时JavaScript垃圾收集