Javascript 没有显式的内存管理,它是浏览器决定何时清理它。有时,由于垃圾收集暂停,您可能会遇到 JavaScript 渲染不流畅的情况。
您可以应用许多技术来克服由垃圾收集 (GC) 引起的故障。应用越多,探索越多。假设您有一个用 JavaScript 编写的游戏,并且您每秒钟都在创建一个新对象,那么很明显,在一定时间后,GC 会发生,为您的应用程序腾出更多空间。
对于像游戏这样需要大量空间的实时应用程序,您可以做的最简单的事情就是重复使用相同的内存。这取决于您如何构建代码。如果它产生大量垃圾,那么它可能会带来不稳定的体验。
通过简单的程序: 众所周知,new 关键字表示分配。只要有可能,您可以尝试通过添加或修改属性每次重用相同的对象。这也称为对象回收
在数组的情况下,分配 [] 通常用于清除数组,但您应该记住,它也会创建一个新数组并丢弃旧数组。要重用相同的块,您应该使用arr.length = 0 这具有相同的效果,但它重用了相同的数组对象而不是创建新的对象。
在函数的情况下:有时我们的程序需要使用 setInterval 或 setTimeout 调用特定函数的时间更长或在特定的时间间隔内。
ex: setTimeout(function() { doSomething() }, 10);
您可以通过将函数分配给永久变量而不是每次定期生成来优化上述代码。
ex : var myfunc = function() { doSomething() }
setTimeout(myfunc, 10);
其他可能的事情是,数组 slice() 方法返回一个新数组(基于原始数组中的范围,可以保持不变),字符串的 substr 也返回一个新字符串(基于原始字符串,可以保持不变),等等。如果没有正确地重用,调用这些函数会产生垃圾。
在 JavaScript 中完全避免垃圾是非常困难的,你可以说不可能。这取决于您如何重用对象和变量以避免垃圾。如果您的代码结构良好且经过优化,您可以最大限度地减少开销。