JavaScript面试题(单题)
题型 | 难易度 | 出现频率 | 浏览 | 评论 |
---|---|---|---|---|
问答题 | 5 | 0 |
试题信息收集不易,转发请带上出处,不甚感谢!如果您对任何编程问题还有疑问,欢迎点击下方按钮向老师提问!
问答题
- 微任务和宏任务你怎么理解 / 宏服务和微服务有什么区别
宏任务和微任务对理解代码执行的顺序是非常有帮助的,特别是在有Promise,setTimeout,asyc await等这些异步处理的代码情况
我的理解是这样的,JavaScript是单线程,一次只能处理一件事情,JavaScript有同步代码和异步代码,会先执行同步代码,再来执行异步代码,而异步代码具有不确定性,如果有多个异步代码,就需要按照一种规则去执行。
这个规则里就引出了宏任务和微任务的两个概念,在异步处理中有setTimeout,setInterval,Promise,aysnc await 。那么对这些做分类setTimeout,setInterval归为宏任务,Promise,async await(是Promise的语法糖)归为微任务。执行的顺序是这样:
如果有宏任务就先执行宏任务,执行结束后,在看看有没有可执行的微任务,如果没有就开始新的宏任务,如果有就执行完所有的微任务,而后开始新的宏任务;会不断的这样循环起来,称之为事件循环。
方便理解,贴流程图