相信好多码友们在工作时有过一个问题:书本的理论知识讲的是JS先执行宏任务再执行微任务,但是在实际工作的js文件中,发现明明先执行的是微任务,然后再执行下一个宏任务啊!
那么为什么会出现这种理论和实战不一致的情况?
根据我个人的经验,我觉得出现这种情况的原因就是js文件最终会被解析到HTML文件的<script></ script>标签中,而script标签本身就是一个宏任务,那么推导出JS文件本身就是一个宏任务,刚开始执行时就是先执行了宏任务,然后再执行里面的微任务。
根据我上述的推理,当面试时面试官问JS同步时宏任务吗?那我会回答是:“虽然网上好多文章都说JS是分为同步和异步,异步又分为宏任务和微任务,但是我个人觉得JS同步本身就是一个宏任务,原因就是.....(我上面的经验推论)”
大家觉得我的想法是否正确,可以留言讨论一下!!!