js垃圾回收机制

垃圾回收机制,简称GC(garbage collection),会定期(周期性)地回收那些不再使用的变量,然后释放其内存。

而内存占用的情况有很多:

1、变量

2、字面量对象声明:var obj = {};

3、数组声明 : var arr = [];

4、函数声明: function fun(){};

上述情况都会占用内存。

通常的解决方法:标记清除;引用计数。

1.标记清除:盒子原理,当变量要进入执行环境,则将该变量标记为“进入环境”,该标记表示不能清除回收该变量,当变量离开执行环境之后,则标记为“离开环境”,进行回收,释放内存。

2.引用计数:值占用数,当该变量作为值被赋其他变量之后,则引用计数+1,当其他变量改变被其他赋值之后,则该变量引用计数-1,当引用计数为0的时候,进行回收清除。(不常用)

内存管理优化方法:

例如setTimeout(function(){},1000),每次执行setTimeout都会创建一个function对象,所以将function函数的功能提取出来。这样不用每次都创建对象,内存占用较少。

原文地址:https://www.cnblogs.com/Yoriluo/p/6861781.html