前端知识点总结

40 阅读1分钟
  1. 事件循环 JavaScript任务分类:同步任务和异步任务
  • 同步任务介绍:就是只要被扫描到,就可以被主线程马上执行的任务。(优先于所有异步任务)
  • 异步任务介绍:即使被扫描到,也不会马上执行,异步任务会被压入异步任务队列中,等待主线程中的任务全部清空了,再被召唤执行

javascript的异步任务又被分为宏任务微任务

在异步任务中,有些异步任务的平均执行周期很长,这些任务被javascript标记为宏任务(比如setTimeout())。而平均执行周期相对比较短的任务,被javascript标记为微任务(比如promise.then())。

宏任务微任务在执行顺序上是不一样的。具体执行机制如下。

(这一块有点绕,是重点,细看👇)

当有异步任务被压入异步任务队列时候,javascript会将这些异步任务分为宏任务和微任务两个新的队列。然后,在所有同步任务执行完毕之后,异步任务会优先执行所有已经存在任务队列中的微任务。在所有的微任务执行完毕之后,再去宏任务队列中执行一个(注意是一个)宏任务,执行完一个宏任务之后会再去微任务队列中检查是否有新的微任务,有则全部执行,再回到宏任务队列执行一个宏任务,以此循环。这一套流程,就是事件循环(event loop)

  1. 模块化 juejin.cn/post/690117…

  2. 跨域 juejin.cn/post/730597… http-proxy-middleware底层实现

  3. webpack 打包和编译的区别,babel juejin.cn/post/724677…

  4. 依赖管理 npm yarn pnpm, juejin.cn/post/720587…

  5. 实现reduce