什么是单线程,和异步有什么关系
单线程-只有一个线程,同一时间只能处理一件事情。如在页面中循环处理多次,或者有alert框不处理,这时页面的渲染就会停顿,这就是单线程导致的。
原因-为了避免DOM渲染的冲突。浏览器要渲染DOM,JS可以修改DOM结构。JS执行的时候,浏览器DOM渲染会暂停,两段JS也不能同时执行(否则都修改DOM就冲突了)
webworker支持多线程,但是不能访问DOM。
解决方案:异步(jquery里的deffered、Promise、async/await)
什么是event-loop
是否用过jQuery的Deffered
Promise的基本使用和原理
介绍一下async/await( 和Promise的区别、联系)
总结一下当前JS解决异步的方案