# fed-e-task--01 **Repository Path**: sfl001/fed-e-task--01 ## Basic Information - **Project Name**: fed-e-task--01 - **Description**: 拉钩模块一的考试题答案 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-30 - **Last Updated**: 2021-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # fed-e-task--01 #### 简答题 - 理解 js 异步编程 - js 是执行在单线程的环境中的,这样就导致它在耗时多任务条件下必须一个一个顺序执行完成,执行的效率低下。 而 js 异步编程就可以改变这一点,js 中的异步任务会被放入到任务队列,通过 js 事件循环机制来实现,只要异步任 务有了结果就放置一个事件。一旦执行栈中所有同步任务执行完毕,系统会读取任务队列看看里面哪些事件对应 的异步任务,并结束等待状态,进入执行栈开始执行。一直不断重复着这个过程。 - EventLoop,消息队列是作什么的 - EventLoop:事件循环,主要是让主线程从任务队列循环往复的读取事件,添加和执行消息队列中的消息 - 消息队列:用于存储异步操作的回调函数。让事件循环来存储消息和调用消息的地方 - 什么是宏任务,微任务 - 宏任务:由浏览器发起的,包含了 setTimeout/setInterval 等事件,运行在同步任务和微任务之后的任务事件 - 微任务:由 js 引擎发起的,包含了 Promise,mutationsObserver,nextTick 等事件,运行在同步任务之后,宏任务之前的任务事件