1.异步和同步的区别
- 异步不会阻塞程序运行
- 同步阻塞程序运行
何时需要异步:1.可能发生等待的情况 2.在等待的过程中不能阻塞程序的运行
console.log(100) setTimeout(function(){ console.log(200) },1000) console.log(300)
2.前端使用异步的场景
- 定时任务 setTimeout setInterval
- 网络请求,ajax请求,动态img加载
- 事件绑定
3.异步和单线程
console.log(100)
setTimeout(function(){
console.log(200)
})
console.log(300)
// 执行过程
// 执行第一行打印100
// 执行setTimeout之后,传入setTImeout的函数会被暂存起来,不会立即执行
// 执行最后一行,答应300
// 待所有程序执行完之后,处于空闲状态,会立马看有没有暂存起来的程序要执行
// 发现暂存起来的setTimeout中的函数无需等待时间,就立即执行