使用异步的场景
setTimeout
异步–结果:100、300、200web
console.log(100); setTimeout(function(){ console.log(200) },1000); console.log(300)
同步–结果:100、200、300ajax
console.log(100); alert(200); console.log(300)
点击事件
单线程
这setTimeout没有时间限制
一、执行第一行,打印100
二、执行setTimeout,将传入setTimeout的函数暂存起来不执行(单线程特色:一次只能作一件事)
三、执行最后一行,打印300
四、待全部程序执行完成、产看有没有暂存的函数须要执行
五、发现setTimeout中没有时间限制的函数,当即执行,打印200异步
console.log(100); setTimeout(function(){ console.log(200) }); console.log(300)
常见问题解答
区别:同步会阻塞代码的执行,异步不会
例子:alert:同步;setTimeout:异步svg
结果:13524函数
console.log(1); setTimeout(function(){ console.log(2) },0); console.log(3); setTimeout(function(){ console.log(4) },1000); console.log(5)