====== 差别 ======
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
前端面试重点突破 [2021/12/22 13:12] 若愚 |
前端面试重点突破 [2021/12/28 17:37] 若愚 |
||
---|---|---|---|
行 1: | 行 1: | ||
- | # 大厂前端面试重点突破 | + | - [宏任务与微任务](宏任务与微任务) |
- | + | ||
- | ## 系列1: | + | |
- | > 考察事件循环、任务队列、和setTimeout、Promise结合,以输出结果顺序的方式来考察 | + | |
- | + | ||
- | #### 范例1 | + | |
- | 来自[面经](https:// | + | |
- | + | ||
- | ```javascript | + | |
- | async function async1(){ | + | |
- | console.log(' | + | |
- | await async2() | + | |
- | console.log(' | + | |
- | } | + | |
- | + | ||
- | async function async2(){ | + | |
- | console.log(' | + | |
- | } | + | |
- | + | ||
- | console.log(' | + | |
- | + | ||
- | setTimeout(function(){ | + | |
- | console.log(' | + | |
- | },0) | + | |
- | + | ||
- | async1() | + | |
- | + | ||
- | new Promise(function(reslove){ | + | |
- | console.log(' | + | |
- | resolve() | + | |
- | }).then(function(){ | + | |
- | console.log(' | + | |
- | }) | + | |
- | + | ||
- | console.log(' | + | |
- | ``` | + | |
- | + | ||
- | #### 范例2 | + | |
- | 来自[面经](https:// | + | |
- | + | ||
- | ```javascript | + | |
- | const pro = new Promise((resolve, | + | |
- | const innerpro = new Promise((resolve, | + | |
- | setTimeout(() => { | + | |
- | resolve(1); | + | |
- | }, 0); | + | |
- | console.log(2); | + | |
- | resolve(3); | + | |
- | }); | + | |
- | innerpro.then(res => console.log(res)); | + | |
- | resolve(4); | + | |
- | console.log(" | + | |
- | }) | + | |
- | pro.then(res => console.log(res)); | + | |
- | console.log(" | + | |
- | ``` | + | |
- | + | ||
- | #### 范例3 | + | |
- | 来自[这里](https:// | + | |
- | + | ||
- | ```javascript | + | |
- | console.log(' | + | |
- | setTimeout(() => { | + | |
- | console.log(' | + | |
- | Promise.resolve().then(() => { | + | |
- | console.log(' | + | |
- | setTimeout(() => { | + | |
- | console.log(' | + | |
- | }) | + | |
- | }).then(() => { | + | |
- | console.log(' | + | |
- | }) | + | |
- | }, 0) | + | |
- | console.log(' | + | |
- | ``` | + |