乐趣区

关于前端:前端基础知识浏览器

1. 浏览器垃圾回收机制?

一:标记革除
这种算法的思维是给以后不应用的值加上标记,而后再回收其内存

算法流程:

1. 浏览器再运行的时候会给存储再内存中的所有变量都加上标记

2. 去掉环境中的变量以及被环境中援用的变量的标记

3. 如果还有变量有标记,就会被视为筹备删除的变量

4. 垃圾回收机制实现内存的革除工作,销毁那些带标记的变量,并回收他们所占用的内存空间

二:援用计数
这种算法的思维是跟踪记录所有值被援用的次数。javaScript 引擎目前都不再应用这种算法,但再 IE 中拜访非原生 JavaScriopt 对象(如 DOM 元素)时,这种算法任然可能会导致问题

当代码中存在循环援用景象时,援用计数算法就会导致问题

解除变量的援用不仅能够帮于打消循环援用景象(一个变量应用完之后赋值为 null),而且对垃圾收集也有益处。为了确保无效的回收内存,应该及时解除不再应用的全局对象、全局对象属性以及循环援用变量的援用

算法流程:

1. 申明了一个变量并将一个援用类型的值赋值给这个变量,这个援用类型值援用次数就是 1

2. 同一个值又被赋值另一个变量,这个援用类型的值援用次数加 1

3. 当蕴含这个援用类型值得变量又被赋值另一个值了,那么这个援用类型的值的援用次数减一

4. 当援用次数变成 0 时,阐明这个值须要解除援用

5. 当垃圾回收机制下次运行时,它就会开释援用次数为 0 的值所占用的内存

退出移动版