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()是异步任务
同步——微任务——宏任务