#### 1.同步和异步

> 1. JS是单线程语言,只能同时处理一件事
> 2. 浏览器和nodejs支持js启动进程,如Web Worker
> 3. JS和DOM渲染共用一个线程,因为JS可以修改DOM
> 4. 遇到等待 (网络请求、 定时任务) 不能阻塞

异步的目的是为了解决单线程存在等待的问题,是基于JS是单线程的本质,以callback函数形式来调用,不会阻塞代码执行。

2.异步的应用场景

- 网络请求(Ajax)
- 定时任务(setTimeout)

3.CallBack Hell(回调炼狱)

​ 使用Promise解决