1.同步和异步的区别?分别举一个同步和异步的例子前端
同步会阻塞代码的执行,而异步则不会ajax
alert函数就是同步的指令,而setTimeout为异步指令网络
2.setTimeout相关的笔试题异步
执行结果为:135,以后是2,1秒后打印4函数
3.前端使用异步的场景有哪些spa
1.定时任务:setTimeout、setInterval线程
2.网络请求:ajax请求、动态img加载blog
3.事件绑定进程
三者都须要等待,由于单线程的JS若是不添加异步机制,则必须执行完一个事件才能够执行下一个事件,阻塞了进程事件
异步能够理解成在执行代码期间,不阻塞进程,能够执行其余任务
例以下方的代码
执行的结果为100,300,200
这里的200按照JS的解析顺序,应该在300以前,可是setTimeout是一个延时操做(异步),所以在这等待的1秒内,JS会执行下面其余不用等待的命令,1s后回来执行这个命令
而下面这个同步的代码则执行结果不一样
执行时,先输出100,再弹出200,直到咱们点击了弹出框后,才会弹出300
这里的alert和两个输出都是同步任务,只有执行完一个,才会执行另外一个
1.定时任务:setTimeout、setInterval
2.网络请求:ajax请求、动态img加载
3.事件绑定
能够理解成一次只能执行一件事,事项须要排队进行
因为JS是单线程的,只能执行完一个指令后执行下一个,可是也不能由于其中的某一项暂时没法执行(异步事件)而阻塞后续事件执行
所以,这里的异步事件会暂存起来,符合条件后再执行(时间、回调成功、事件触发等)