您当前的位置: 首页 > 

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

事件队列-笔试题

发布时间:2021-04-17 21:09:33 ,浏览量:0

目录
  • 示例-1
  • 示例-2
  • 示例-3
示例-1
setTimeout(() => { console.log(1); }, 20); console.log(2); setTimeout(() => { console.log(3); }, 10); console.log(4); // console.time('time'); for (let i = 0; i < 90000000; i++) { // 900000 5 个 0:2.57421875 ms 左右 // 9000000 6 个 0:12.625 ms 左右 // 90000000 7 个 0:116.13525390625 ms 左右 // 900000000 8 个 0:525.622314453125 ms 左右 // 9000000000 9 个 0:9807.490966796875 ms 左右 // 90000000000 10 个 0:循环不出来了 } // console.timeEnd('time'); console.log(5); setTimeout(() => { console.log(6); }, 8); console.log(7); setTimeout(() => { console.log(8); }, 15); console.log(9); // 2 4 5 7 9   3 1 6 8 

循环的时间都超过了所有定时器的时间,在宏仁务中,定时器会按照从上到下的顺序执行,不再按照设置的时间长短来执行。

示例-2
console.log(1); setTimeout(()=>{ console.log(2); }, 50); console.log(3); setTimeout(()=>{ console.log(4); while(1 === 1) {}; // 遇到死循环, // 所有代码执行都是在主栈中执行, // 主栈永远结束不了, // 后面啥都不干 }, 0); console.log(5); // 1 3 5   4 
示例-3
console.log(1); // 宏仁务 setTimeout(function () { console.log(2); }, 0); // 微任务 Promise.resolve().then(function () { console.log(3); }).then(function () { console.log(4); }); console.log(5); // 1 5   3 4 2 
关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.4701s