1、js事件运行机制
js是单线程的,先同步后异步
执行顺序:同步任务、process.nextTick、微任务、宏任务、serImmediate()
-
宏任务:计时器、Ajax请求、读取文件操作
-
微任务:promise.then
2、闭包
函数套函数,外部函数可以访问内部函数的变量,内部函数就是闭包
- 作用:延长内部变量的生命周期、外部可以访问函数内部变量
- 缺点:局部变量会常驻内存,容易造成内存泄漏
3、Promise核心原理
- 三种状态:pending(等待)、fulfilled(成功)、rejected(失败)
- 状态一旦变更不可逆
- 执行顺序:执行同步代码、执行成功或者失败执行不同回调至微任务队列
- 链式调用:执行then()方法,接受两个参数 onFulfilled(成功回调)、onRejected(失败回调),返回一个新的Promise,实现链式调用
- 错误捕获:链式调用中错误自动传递,被最近的catch捕获