首先我们说一下JS当中的数据类型
这些类型在内存中占据固定的内存空间,保存在栈空间,直接可以通过值去访问
由于引用类型值大小不固定,栈内存中放着地址指向堆内存中的对象,通过引用访问
总结:栈内存中的基本类型,可以通过操作系统直接处理,而堆内存中的引用类型,大小不固定,需要使用JS垃圾回收机制来处理
对于零散的空间,会使用算法将其零散空间排列整体之后进行处理(scavenge)
清理过程:遍历堆上的对象,打上标记,代码执行结束之后,对变量进行取消标记,没取消的就是没有使用过的变量,取消的全部释放。标记清除之后,还会出现内存碎片的问题,使用标记整理进行操作。