面试如何回答 ”请你解释下什么是js当中的异步?“

114 阅读1分钟

异步的原因是js是单线程语言,异步的实现方式是任务队列。

js是一门单线程语言,运行于浏览器的渲染主线程当中。在浏览器的渲染主线程当中,有多个需要执行的任务,比如渲染html,加载css,执行交互操作,网络请求等等一系列活动

如果使用同步的方式,会造成渲染主线程阻塞,导致页面卡死。 异步就解决了这个问题,当渲染主线程执行计时函数,网络请求等一系列需要延时的操作时,会将任务交给浏览器的其他线程去执行,比如计时器线程,网络线程等,等其他线程执行结束之后会将异步任务的回调函数包装成任务放到相应的任务队列当中,比如计时器队列,交互队列等。

等待渲染主线程执行完成后,会从任务队列当中按照优先级去取相应的任务调度执行。这就是异步,异步的原因是js是单线程语言,异步的实现方式是任务队列。