前端面试题:如何理解JS的异步?

首先 JS是一门单线程语言,这是因为它运行在浏览器的渲染主线程中,而渲染主线程只有一个。

单线程的话,如果他再是采用同步的方式执行代码,比如遇到一个计时器时,他就要等这个计时器结束之后才能继续执行下面的代码,这样就会使渲染主线程阻塞了,给用户造成卡死的现象。

所以浏览器采用异步的方式执行代码,当执行到像计时器,网络请求,事件监听这样的代码时,渲染主线程会把这些任务交给其他对应的线程去处理,自身转而执行后续代码。当其他线程执行完成时,会将处理好的任务加入到消息队列的末尾排队,等待主线程调度执行。

在这种异步模式下,浏览器就能正常的执行不会阻塞了,从而最大限度的保证单线程的流畅执行。

你可能感兴趣的:(前端面试题,javascript,前端,开发语言,面试)