宏任务与微任务面试题
宏任务与微任务面试题
- 对于宏任务与微任务的执行顺序问题一直都是前端面试一到过不去的坎,这东西多看是没用的,多做就是了,刷了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);
宏任务与微任务面试题相关推荐
- ajax是宏任务还是微任务,(滴滴面试)事件循环Event Loop及微任务和宏任务的执行过程详解...
之前一直在面试,对于一些大厂面试题真的还是很注重原理和基础的, 还有就是数据结构和算法这种,校招的话,这些是很重要的, 前天和滴滴的人面试,问的真心觉得不难,而且也都是现在面试前端很常见的问题, 对于 ...
- 简单易懂的宏任务和微任务执行顺序
背景 很多朋友在写面试题:宏任务与微任务的执行时机时,容易犯迷糊.之前我也写过两篇文章,这次加上详细的讲解,让大家更容易理解. 什么是宏任务.微任务? 1.首先要称得上是宏任务.微任务的,必须是一个回 ...
- ❤️一起谈一谈js中的宏任务和微任务!
前面面试的文章中我们说过一道关于宏任务和微任务的题: setTimeout(function(){console.log('1') });new Promise(function(resolve){c ...
- 事件轮询(Event Loop) 宏任务与微任务
事件轮询(Event Loop) 宏任务与微任务 文章目录 事件轮询(Event Loop) 宏任务与微任务 前言 Javascript诞生 Javascript如何执行 Event Loop是什么? ...
- JS面试——宏任务与微任务
JavaScript的宏任务与微任务 1.问题的由来 2.JavaScript的宏任务与微任务 2.1promise的使用方法 2.2async与await的使用方法 3.面试题实战分析--程序执行顺 ...
- 宏任务与微任务的理解
宏任务与微任务的理解 宏任务与微任务是什么? 宏任务与微任务表示异步任务的两种分类 宏任务:包括整体代码script(可以理解为外层同步代码).settimeout.setInterval.i/o.u ...
- Promise与宏任务、微任务
最近在摸鱼的时候,遇到了一个需求:用户可以接连上传多张图片,但是uni.upload一次只能上传一张图片,我当时想着是设置一个Promise,在一个循环中挨个上传,最后做一个整体resolve,但是这 ...
- js 宏任务和微任务
目录 1.宏任务和微任务的概念是什么 ? 宏任务: 是指消息队列中的等待被主线程执行的事件,宏任务执行时都会重新创建栈,然后调用宏任务中的函数,栈也会随着变化,但宏任务执行结束时,栈也会随之销毁.包括 ...
- 易生信-宏基因组积微学术论坛:基于大数据整合准确预测土壤的枯萎病发生...
博彩众家之长,积微成就突破.为促进我国宏基因组研究领域的学术交流和技术分享,推动微生物组领域的发展,"宏基因组"公众号联合国内外优秀人才组织"易生信-宏基因组 积微学术论 ...
最新文章
- Python的必学技术——Jupyter Notebook
- 如何利用永洪自服务数据集,构建强大的数据处理能力?
- 最详细的vue-cli工具构建vue项目教程
- 基于ARM 构架(带MMU)的copy_from_user与copy_to_user详细分析
- c++11编码规范 NULL还是nullptr
- ABP从入门到精通(2):aspnet-zero-core 使用MySql数据库
- 字典超详细--python
- hadoop原来是这样的!
- ecshop设置一个子类对应多个父类并指定跳转url的修改方法
- HTTPS 互联网世界的安全基础
- 2020年最新前端框架大全,Web工程师人手一份!
- freeMarker fmpp 解析PowerDesign PDM探索
- 最小环(【CCF】NOI Online能力测试 提高组第三题)
- Elasticsearch搜索类型(query type)详解
- JAVA——电子商城三级分类目录查询-递归树形数据结构
- logistic回归分析优点_逻辑回归算法的优缺点
- 【经典算法实现 42】二维傅里叶变换 及 逆变换代码实现
- 嵌入式系统开发与应用——Linux系统Socket网络编程
- duckduckgo搜索引擎_谷歌 Chrome 浏览器添加 DuckDuckGo 搜索引擎
- 7-36 韩信点兵 (10分)