目录
函数式编程与 JS 异步编程、手写 Promise
简答题
- 谈谈你是如何理解 JS 异步编程的?
- EventLoop、消息队列都是做什么的?
- 什么事宏任务,什么是微任务?
-
JS 异步编程
JavaScript 语言的执行环境是单线程的,一次只能执行一个任务,多任务需要排队等待,这种模 式可能会阻塞代码,导致代码执行效率低下。为了避免这个问题,出现了异步编程。一般是通过 callback 回调函数、事件发布/订阅、Promise 等来组织代码,本质都是通过回调函数来实现异 步代码的存放与执行。
-
EventLoop 事件循环和消息队列
EventLoop 是一种循环机制,不断去轮询一些队列,从中找到需要执行的任务并按顺利执行 的一个执行模型。消息队列 是用来存放宏任务的队列,比如定时器时间到了,定时器内传入的方法引用会存 到该队列,ajax 回调之后的执行方法也会存到该队列。