知识点:
#异步
JS是一个单线程语言,所以只能使用异步
何时需要异步?在可能发生等待的情况
前端使用异步的场景:
1、定时任务:setTimeout,setInverval
2、网络请求:ajax请求,动态img图片加载
3、事件绑定
#异步和单线程
对于异步的代码,在执行时会被先拿出来不执行,等所有非异步的代码执行完后,再拿出来执行。
如
console.log(1);
setTimeout(function(){
console.log(2);
})
console.log(3);
setTimeout内部的函数会先被拿出,等3输出后,才执行,如果有设置等待时间那就是在3输出后开始等待对应时
间,再执行。
因为是单线程所以只能在别的非异步的代码执行完后才执行提出来的异步代码,否则就可以同时执行异步和非异步
代码。
#同步和异步的区别
同步会阻塞代码,异步不会
setTimeout是异步,alert是同步