1.js为什么是单线程?
防止DOM冲突,
如果js是多线程,会同时执行两个任务,如果都是操作DOM,一个修改,一个删除就会出现冲突
2.单线程是什么?
所谓“单线程”就是一根筋,对于拿到的程序,一行一行的执行,直到上面的执行为完成,只能做这一件事
3.同步和异步的区别是什么
同步会阻塞代码执行,而异步不会
4.什么时候需要异步?
总之,所有的“等待的情况”都需要异步
异步的解决方案 事件轮询
事件轮询的核心 回调函数
如果任务是串行的,不能发生阻塞,就使用异步解决这种问题
浏览器待所有程序执行完,处于空闲状态时,会立马看有没有暂存起来的异步任务要执行(事件轮询)