# fed-e-task-01-01 **Repository Path**: shay_cormac/fed-e-task-01-01 ## Basic Information - **Project Name**: fed-e-task-01-01 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-16 - **Last Updated**: 2021-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简答题 #### 谈谈你是如何理解 JS 异步编程的,EventLoop、消息队列都是做什么的,什么是宏任务,什么是微任务? **答:** js 异步编程是将耗时任务等,影响主线程的任务,开启后移入到异步环境执行,执行完毕后依次放入到消息队列中,当 EventLoop 监听到本轮主线程调用栈的任务都完成后,就会将消息队列中的异步任务压入调用栈。 EventLoop 主要是监听调用栈和消息队列的情况,并在调用栈任务清空后,将消息队列中的异步任务一次放入调用栈执行 消息队列 是用来依次排列异步任务执行结果的队列 宏任务 是需要通过轮询机制轮询完成的任务需要在消息队列依次排列。如:setTimeout、setInterval、setImmediate,等各种事件回调函数 微任务 是在当前本轮的宏任务完成之后立即执行,不需要再去消息队列排队。如process.nextTick(node中)、Promise、MutationObserver