单线程和异步 js是单线程语言,只能做一件事 js和DOM渲染共用一个线程,因为js可以修改dom结构,dom 渲染时js必须停止,js执行时,dom渲染时js必须停止。 异步 基于js是单线程语言,异步不会阻塞代码执行 ,同步会阻塞代码执行 遇到等待(网络延迟,定时任务)不能卡住,所以需要异步,异步的回调是callback 回调函数 异步是有单线程这个背景而来的 应用场景 网络请求 如ajax图片加载 定时任务 如settimeout promise解决了callback 嵌套问题