单线程和异步

背景

  1. JS是单线程语言,只能同时做一件事。
  2. 浏览器和node.js已支持JS启动进程。
  3. JS和DOM渲染共用同一个线程,因为JS可修改DOM结构。
  4. 所以浏览器遇到等待(网络请求,定时任务不能卡住)就需要异步,以回调函数的形式。
  5. 异步不会阻塞代码执行,同步会阻塞代码执行。

    应用场景

  6. 网络请求,如Ajax图片加载image.png

  7. 定时任务,如setTimeout
    image.png

    回调地狱和promise

    promise的基本使用

  8. 回调地狱
    image.png

    相关面试题

  9. 同步和异步的区别

    1. 基于JS是单线程语言
    2. 异步不会阻塞代码执行,同步会阻塞代码执行。
  10. 手写Promise加载一张图片
  11. 异步应用场景
    1. 网络请求,如Ajax图片加载
    2. 定时任务,如setTimeout
  12. 笔试题
    image.png
    1. 答案:1 3 5 4 2