前端开发学习笔记Day01
每日一题八股文—— 描述事件循环(eventloop)
-
基础知识:js是单线程(同一时间只能做一件事)&& 主要用途是进行用户交互和操作DOM
执行顺序:同步:执行栈;异步:宿主环境——任务队列——执行栈 同步代码 :立即放到JS引擎(主线程)执行,并原地等待结果 异步代码:先放到宿主环境(浏览器/Node),不用原地等待结果,宿主环境等时机一到就将function推送到任务队列中执行 **因此事件循环,即:执行栈只要一执行完同步代码,就会反复去任务队列中查看是否有异步代码需要执行(反复查找)**
-
Detail Answer
1、首先,js是单线程的。为了防止代码阻塞,我们把代码划分为同步和异步
2、同步代码交给js引擎执行,异步代码交给宿主环境
3、同步代码放到执行栈中,而异步代码需等到时间成熟时送到任务队列排队
4、若执行栈执行完毕,就查看任务队列是否存在异步任务,若存在就送到执行栈执行; 并反复循环查看执行;