龙空技术网

javascript 的垃圾回收机制

尚硅谷教育 237

前言:

此刻各位老铁们对“js回收”可能比较注重,看官们都想要学习一些“js回收”的相关文章。那么小编也在网络上搜集了一些有关“js回收””的相关知识,希望兄弟们能喜欢,姐妹们一起来了解一下吧!

JS自带一套内存管理引擎,负责创建对象、销毁对象,以及垃圾回收。这期探讨一下垃圾回收机制。垃圾回收机制主要是由一个叫垃圾收集器(garbage collector,简称GC)的后台进程负责监控、清理对象,并及时回收空闲内存。

和C#、Java一样JavaScript有自动垃圾回收机制,也就是说执行环境会负责管理代码执行过程中使用的内存,在开发过程中就无需考虑内存分配及无用内存的回收问题了。

而 JavaScript 在创建对象(对象、字符串等)时会为它们分配内存,不再使用时会“自动”释放内存,这个过程称为垃圾收集。

内存生命周期中的每一个阶段:

分配内存 —  内存是由操作系统分配的,它允许您的程序使用它。在低级语言(例如 C 语言)中,这是一个开发人员需要自己处理的显式执行的操作。然而,在高级语言中,系统会自动为你分配内在。

使用内存 — 这是程序实际使用之前分配的内存,在代码中使用分配的变量时,就会发生读和写操作。

释放内存 — 释放所有不再使用的内存,使之成为自由内存,并可以被重新利用。与分配内存操作一样,这一操作在低级语言中也是需要显式地执行。

四种常见的内存泄漏:全局变量,未清除的定时器,闭包,以及 dom 的引用全局变量 不用 var 声明的变量,相当于挂载到 window 对象上。如:b=1; 解决:使用严格的模式被遗忘的定时器和回调函数闭包没有清理的 DOM 元素引用

标签: #js回收