什么是内存泄露
本质上,内存泄露可以定义为:应用程序不再需要占用内存的时候,由于某些原因,内存没有被操作系统或可用内存池回收。编程语言管理内存的方式各不相同,一些语言提供了语言特性,可以帮助开发者做此类事情;另一些则寄希望于开发者对内存是否需要回收清晰明了。
JavaScript内存管理
JavaScript是一种垃圾回收语言。垃圾回收语言通过周期性地检查先前分配的内存是否可达,帮助开发者管理内存。换言之,垃圾回收语言减轻了“内存仍可用”及“内存仍可达”的问题。这二者的关系是微妙但重要的:仅有开发者了解哪些内存是将来仍然要使用的;而哪些内存是可达或者不可达则可以由算法确定和标记,不可达的内存适时被操作系统回收。