宏任务与微任务面试题

  • 对于宏任务与微任务的执行顺序问题一直都是前端面试一到过不去的坎,这东西多看是没用的,多做就是了,刷了10来到面试题,立马顿悟。
    1
async  function  async1 ()  {console.log('async1 start');await  async2();console.log('async1 end')console.log('async1 end  2')}async  function  async2 ()  {console.log('async2')}console.log('script start');setTimeout(function ()  {console.log('setTimeout')},  0);async1();new  Promise(function (resolve)  {console.log('promise1');resolve()}).then(function ()  {console.log('promise2')});console.log('script end')

2

 console.log('1')          setTimeout(function () {console.log('2')setTimeout(function () {console.log('3')},0)            new Promise(function (resolve) {console.log('4')          for (let i = 0; i < 666; i++) {i == 5 && resolve()}                 }).then(function () {console.log('5')})           }, 0)           console.log('6')          new Promise(function (resolve) {console.log('7')          for (let i = 0; i < 666; i++) {i == 5 && resolve()}             }).then(function () {console.log('8')})

3

setTimeout(() => {console.log(4);}, 0);new Promise(resolve => {console.log(1);for (let i = 0; i < 10000; i++) {i == 9999 && resolve();}console.log(2)}).then(() => {console.log(5)})console.log(3)

4

setTimeout(function(){console.log('1')});  new  Promise(function(resolve){console.log('2');      resolve();      }).then(function(){console.log('3')       }); console.log('4');
setTimeout(() => {Promise.resolve().then(() => {console.log('1')})},0);Promise.resolve().then(() => {setTimeout(() => {console.log('2')},0)});console.log('3')

6

setTimeout(() => {console.log('1') },0);Promise.resolve().then(() => {console.log('2');Promise.resolve().then(() => {console.log('3');})})console.log('4');

7

 async function async1() {console.log(1);const result = await async2();console.log(3);}async function async2() {console.log(2);}Promise.resolve().then(() => {console.log(4);});setTimeout(() => {console.log(5);});async1();console.log(6);

8

console.log('1');  setTimeout(function() {console.log('2');Promise.resolve().then(function() {console.log('3');})new Promise(function(resolve) {console.log('4');resolve();}).then(function() {console.log('5')})})Promise.resolve().then(function() {console.log('6');})new Promise(function(resolve) {console.log('7');resolve();}).then(function() {console.log('8')})setTimeout(function() {console.log('9');Promise.resolve().then(function() {console.log('10');})new Promise(function(resolve) {console.log('11');resolve();}).then(function() {console.log('12')})})

9

new Promise(function(res) {console.log(1);res();Promise.resolve().then(function() {console.log(2);});    new Promise(function(res) {res();}).then(function() {console.log(-1);});console.log(0);}).then(function() {console.log(3);Promise.resolve().then(function() {console.log(4);});}).then(function() {console.log(5);});       Promise.resolve().then(function() {console.log(6);Promise.resolve().then(function() {console.log(7);});});   setTimeout(function() {setTimeout(function() {console.log(8);}, 0);Promise.resolve().then(function() {console.log(9);});}, 0);setTimeout(function() {console.log(10);}, 0);

10

console.log(1); //console.log(18); //new Promise(function(res, rej) {console.log(2); //res();}).then(function() {console.log(3); //Promise.resolve().then(function() {console.log(5);setTimeout(function() {console.log(6); //Promise.resolve().then(function() {console.log(7);});setTimeout(function() {console.log(8);}, 0);}, 0);});}).then(function() {console.log(4);});new Promise(function(res) {console.log(19); //setTimeout(function() {console.log(20); //}, 0);});Promise.resolve().then(function() {setTimeout(function() {Promise.resolve().then(function() {console.log(12);});console.log(13); //}, 0);});setTimeout(function() {console.log(9); //new Promise(function(res) {res();console.log(10);}).then(function() {console.log(11);});});setTimeout(function() {setTimeout(function() {setTimeout(function() {Promise.resolve().then(function() {console.log(14);});console.log(15);}, 0);console.log(16);}, 0);console.log(17); //}, 0);

11

console.log(1);//document.addEventListener("14", function () {console.log(14);//});new Promise(function (resolve) {resolve();console.log(2);//setTimeout(function () {console.log(3);//}, 0);Promise.resolve().then(function () {console.log(4);//setTimeout(function () {console.log(5);}, 0);setTimeout(function () {(async function () {console.log(6);return function () {console.log(7);};})().then(function (fn) {console.log(8);fn();});}, 0);});new Promise(function (resolve) {console.log(9);//resolve();}).then(function () {new Promise(function (resolve, reject) {console.log(10);reject();}).then(function () {setTimeout(function () {console.log(11);}, 0);console.log(12);}).catch(function () {console.log(13);var evt = new Event("14");document.dispatchEvent(evt);});});});     setTimeout(function () {console.log(15);Promise.resolve().then(function () {console.log(16);});}, 0);

宏任务与微任务面试题相关推荐

  1. ajax是宏任务还是微任务,(滴滴面试)事件循环Event Loop及微任务和宏任务的执行过程详解...

    之前一直在面试,对于一些大厂面试题真的还是很注重原理和基础的, 还有就是数据结构和算法这种,校招的话,这些是很重要的, 前天和滴滴的人面试,问的真心觉得不难,而且也都是现在面试前端很常见的问题, 对于 ...

  2. 简单易懂的宏任务和微任务执行顺序

    背景 很多朋友在写面试题:宏任务与微任务的执行时机时,容易犯迷糊.之前我也写过两篇文章,这次加上详细的讲解,让大家更容易理解. 什么是宏任务.微任务? 1.首先要称得上是宏任务.微任务的,必须是一个回 ...

  3. ❤️一起谈一谈js中的宏任务和微任务!

    前面面试的文章中我们说过一道关于宏任务和微任务的题: setTimeout(function(){console.log('1') });new Promise(function(resolve){c ...

  4. 事件轮询(Event Loop) 宏任务与微任务

    事件轮询(Event Loop) 宏任务与微任务 文章目录 事件轮询(Event Loop) 宏任务与微任务 前言 Javascript诞生 Javascript如何执行 Event Loop是什么? ...

  5. JS面试——宏任务与微任务

    JavaScript的宏任务与微任务 1.问题的由来 2.JavaScript的宏任务与微任务 2.1promise的使用方法 2.2async与await的使用方法 3.面试题实战分析--程序执行顺 ...

  6. 宏任务与微任务的理解

    宏任务与微任务的理解 宏任务与微任务是什么? 宏任务与微任务表示异步任务的两种分类 宏任务:包括整体代码script(可以理解为外层同步代码).settimeout.setInterval.i/o.u ...

  7. Promise与宏任务、微任务

    最近在摸鱼的时候,遇到了一个需求:用户可以接连上传多张图片,但是uni.upload一次只能上传一张图片,我当时想着是设置一个Promise,在一个循环中挨个上传,最后做一个整体resolve,但是这 ...

  8. js 宏任务和微任务

    目录 1.宏任务和微任务的概念是什么 ? 宏任务: 是指消息队列中的等待被主线程执行的事件,宏任务执行时都会重新创建栈,然后调用宏任务中的函数,栈也会随着变化,但宏任务执行结束时,栈也会随之销毁.包括 ...

  9. ​易生信-宏基因组积微学术论坛:基于大数据整合准确预测土壤的枯萎病发生...

    博彩众家之长,积微成就突破.为促进我国宏基因组研究领域的学术交流和技术分享,推动微生物组领域的发展,"宏基因组"公众号联合国内外优秀人才组织"易生信-宏基因组 积微学术论 ...

最新文章

  1. Python的必学技术——Jupyter Notebook
  2. 如何利用永洪自服务数据集,构建强大的数据处理能力?
  3. 最详细的vue-cli工具构建vue项目教程
  4. 基于ARM 构架(带MMU)的copy_from_user与copy_to_user详细分析
  5. c++11编码规范 NULL还是nullptr
  6. ABP从入门到精通(2):aspnet-zero-core 使用MySql数据库
  7. 字典超详细--python
  8. hadoop原来是这样的!
  9. ecshop设置一个子类对应多个父类并指定跳转url的修改方法
  10. HTTPS 互联网世界的安全基础
  11. 2020年最新前端框架大全,Web工程师人手一份!
  12. freeMarker fmpp 解析PowerDesign PDM探索
  13. 最小环(【CCF】NOI Online能力测试 提高组第三题)
  14. Elasticsearch搜索类型(query type)详解
  15. JAVA——电子商城三级分类目录查询-递归树形数据结构
  16. logistic回归分析优点_逻辑回归算法的优缺点
  17. 【经典算法实现 42】二维傅里叶变换 及 逆变换代码实现
  18. 嵌入式系统开发与应用——Linux系统Socket网络编程
  19. duckduckgo搜索引擎_谷歌 Chrome 浏览器添加 DuckDuckGo 搜索引擎
  20. 7-36 韩信点兵 (10分)

热门文章

  1. win10相机_粉丝问答33期:小米手环5什么时候发布;小米2S谷歌相机;小米8充电慢...
  2. 基于国产arm64 cpu+海之舟大数据操作系统建立大数据库
  3. 3D游戏建模布线方法
  4. 信任,问责制以及时间在哪里?
  5. GPU还是IPU?IPU 芯片厂商 Graphcore 的 2021
  6. 收藏上全募金资模式及策略
  7. SpringCloud学习记录 | 第十五篇:SpringCloud Alibaba Nacos配置中心-单机版
  8. 爬虫实战项目--优信二手车--天眼
  9. k8s pod重启前的日志查看
  10. 简易的java程序,银行管理系统