• 单线程与异步

    • JS 是单线程语言,只能同时做一件事
    • 浏览器和 nodejs 已支持 JS 启动进程,如 Web Worker
    • JS 和 DOM 共用一个线程,因为 JS 可修改 DOM 结构
    • 由于请求网站时,不能因(网络请求,定时任务)卡住
    • 因此需要异步
  • 同步与异步

    • 基于 JS 是单线程语言
    • 异步不会阻塞代码执行
    • 同步会阻塞代码执行
    // 异步 (callback 回调函数)
    console.log(100)
    setTimeout(() => {
        console.log(200)
    }, 1000)
    console.log(300)
    console.log(400)
    // 同步
    console.log(100)
    alert(200)
    console.log(300)
- 应用场景
	1. 网络请求,如 ajax 图片加载
	2. 定时任务,如 setTimeout