一、知识点
- 什么是异步(对比同步)
- 前端使用异步的场景
- 异步和单线程
二、什么是异步
异步加载也叫非阻塞模式加载,浏览器在下载js的同时,还会执行后续的页面处理
上述打印结果是100 300 200 第5行并不会等待setTimeout 1秒,而是往后继续执行,这个就是异步的处理方式。
三、什么是异步
上述执行结果分别是100 300 200 。
分析:
-
第一行打印100,二行setTimeout函数
-
执行setTimeout后,传入setTimeout的函数会被暂存起来,不会立即执行(单线程的特点,不能同时干两件事)
-
执行最后一行,打印300
-
待所有程序执行完,处理空闲状态时,分立马看有没有暂存起来的要执行 发现暂存起来的setTimeout中的函数无需等待时间,就立即过来执行
五、面试真题
1、同步和异步的区别是什么
-
同步会阻塞代码执行,而异步不会
-
alert是同步,setTimeout是异步
2、前端使用异步的场景有哪些
-
定时任务: setTimeout, setInterval
-
网络请求: ajax请求,动态 img 加载
-
事件绑定
愿你成为终身学习者