JavaScript系列-垃圾回收机制

229 阅读2分钟

面试了许多求职者,很多求职者只知其然,而不知所以然,写此文章为广大前端小伙伴指引迷津。纯干货!纯干货!纯干货!

目录

垃圾回收

什么是垃圾?

答:从根上不可访问的,以及没有被引用的对象是垃圾。

什么是垃圾回收?

答:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存

垃圾回收机制的作用?

答:将已占用的内存释放出来,以便能够再使用,否则造成系统崩溃。

垃圾回收机制的实现原理?

答:采用标记清除、引用计数方式。
    标记清除:当变量进入执行环境时,将该变量标记'进入环境',当变量出执行环境时,将该变量标记'离开环境',最后垃圾回收器在下一次周期里,释放标记'离开环境'的变量内存。
    引用计数:语言引擎有一张引用表,保存了内存里面的引用次数,如果一个值的引用次数为0,表示该值不再使用,可以释放。

垃圾回收机制的使用场景?

答:局部变量等;

垃圾回收机制的弊端?

答:为浏览器设计,不太可能遇到大量内存的场景,会导致线程短暂停止从而引起性能问题(卡顿等)。

垃圾回收机制的笔试题?
function fn1() {	
    var obj = {name: 'hanzichi', age: 10};	
}	
function fn2() {	
    var obj = {name:'hanzichi', age: 10};	
    return obj;	
}	
var a = fn1();	
var b = fn2();
console.log(a,b)

答案:undefined {name:'hanzichi', age: 10}
面试大白话

答:首先,垃圾回收机制垃圾收集器会定期找出不再继续使用的变量,然后释放内存。其主要目的也是为了内存能够循环利用。它的原理就是采用标记清除、引用计数算法将进行垃圾回收,释放内存。

小白也是新手面试官,欢迎领导莅临指导工作,提出建议,小白不胜感激,不喜勿喷,点赞收藏随机送程序媛小姐姐一枚哦!!!