Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript可以执行一些显式/手动内存操作吗?_Javascript - Fatal编程技术网

Javascript可以执行一些显式/手动内存操作吗?

Javascript可以执行一些显式/手动内存操作吗?,javascript,Javascript,在C语言中,如果我不需要特定的内存区域,我可以手动删除这些内存区域。我想知道在Javascript中,我可以做同样的事情 或者我可以利用虚拟内存接口。否。您也不应该“需要”这样做。Javascript管理内存,不公开其实现 (这对于垃圾收集之类的事情非常非常有用,尤其是停止和复制种类。) 只要您没有对对象的引用,Javascript就可以释放该内存。实现在实际释放内存(也称为垃圾收集)的频率上有所不同,但如果内存耗尽,它们肯定会这样做 var a = {a: 1}; // can't garba

在C语言中,如果我不需要特定的内存区域,我可以手动删除这些内存区域。我想知道在Javascript中,我可以做同样的事情

或者我可以利用虚拟内存接口。

否。您也不应该“需要”这样做。Javascript管理内存,不公开其实现

(这对于垃圾收集之类的事情非常非常有用,尤其是停止和复制种类。)

只要您没有对对象的引用,Javascript就可以释放该内存。实现在实际释放内存(也称为垃圾收集)的频率上有所不同,但如果内存耗尽,它们肯定会这样做

var a = {a: 1};
// can't garbage collect {a: 1}
a = null;
// can garbage collect {a: 1}

var b = {b: 1};
// can't garbage collect {b: 1}
var c = b;
// can't garbage collect {b: 1}
b = null;
// can't garbage collect {b: 1}
c = null;
// can garbage collect {b: 1}


也许你应该问一个更高层次的问题,关于你想要完成什么。

Javascript不允许你手动清除内存。当它为你做的时候,你也不应该担心它

另一方面,当没有对已用内存的引用时,javascript会清除该内存。你所能做的就是删掉那些引用。比如说:

var x = some object;

x = null;

请在JS中提供一个真实的例子。对于一些巨大的内存操作,我想释放一些。Chrome只有32位,如果没有它,很难使用JS执行巨大的内存操作。如果你停止使用某些东西(无法从当前/全局作用域访问对象),它会自动释放。确实如此,但不幸的是,垃圾收集器不会立即调用。@MatúDúbrava:它实际上是“幸运的”:-)