异步
抛出问题
- 同步和异步的区别
- 一个关于setTimeout的笔试题
- 前端使用异步的场景有哪些
知识点
1 什么是异步(对比同步)
- 同步阻塞
- 异步不阻塞
2 前端使用异步的场景
- 定时任务: setTimeout, setInvercal
- 网络请求: ajax请求,动态
加载
- 事件绑定
3 异步和单线程
console.log(100);
setTimeout(function(){
console.log(200);
})
console.log(300);
- 执行第一行,打印100
- 执行setTimeout后,传入setTimeout的函数会被暂存起来,不会立即执行(单线程的特点,不能同时干两件事)
- 执行最后一行,打印300
- 待所有程序执行完,处于空闲状态,会立马看有没有暂存起来的要执行
- 发现暂存起来的setTimeout中函数无等待时间,就立即执行
解决问题
1 同步和异步的区别
- 见上
2 一个关于setTimeout的笔试题
for(var i = 0; i < 499999999l; i++){
console.log('first);
setTimeout(
function(){
console.log('second')
}, 5000);
}
输出什么: 先输出所有的first 在输出所有的second
3 前端使用异步的场景有哪些