2023-02-09:垃圾回收、任务队列

1、promise

Promise是一个 用来表示异步操作结果的 对象。状态一经修改就不可再变动。
(Pending——Resolved、Rejected)

2、闭包

闭包是内层函数对层函数变量的不释放。

GC(垃圾回收)机制:——(垃圾回收算法主要有二:引用计数、标记清除)

堆内存放实际的存储对象,栈内存放存储对象的指针。
将不再使用的变量赋值为null,此时垃圾回收机制会自动销毁对应的垃圾对象。
特征:函数包函数、内部访问外部变量、参数和变量不会被垃圾回收。

引用计数:若无变量引用它就释放内存。
对象循环引用会造成内存泄漏,。eg:若obj中a字段引用obj2,obj2中a字段引用obj;此时赋值obj及obj2为null,引用的内存不会释放。

标记清除:从根开始找引用的对象。
解决循环引用造成的内存泄漏。

3、任务队列

宏任务(setTimeout,setInterval,js...)
微任务(promise.then(),nextTick...)
ps:promise的.then()是异步任务
同步——微任务——宏任务

image.png

image.png
image.png

image.png
image.png

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。