Skip to content

面试大纲:00

问题

什么是单线程,和异步有什么关系

  • 单线程就是同时只能做一件事,两段 JS 不能同时执行
  • 原因就是为了避免 DOM 渲染的冲突
  • 异步是一种“无奈”、高效的解决方案,但存在一些问题

什么是 event-loop

  • 事件循环/轮询,JS 实现异步的具体解决方案
  • 同步代码,按顺序直接执行
  • 异步函数先放在异步队列中
  • 待同步函数执行完毕,轮询执行异步队列的函数

是否用过 jQuery 的 Deferred

  • 可以以 jQuery1.5 对 ajax 的改变举例
  • 说明如何简单的封装、使用 Deferred
  • 说明 promise 和 Deferred 的区别

Promise 的基本使用和原理

  • 基本语法
  • 捕获异常 Error 和 Reject 都要考虑
  • 多个串联 - 链式执行的好处
  • Promise.all 和 Promise.race
  • Promise标准 - 状态变化、then函数

介绍一下 async/await 和 Promise 的联系、区别

  • 基本语法(Promise是对异步回调的封装)
  • 使用了Promise,并没有和Promise冲突
  • 完全是同步的写法,再也没有回调函数
  • 但是它改变不了JS单线程、异步的本质

共 20 个模块,1301 篇 Markdown 文档。