同步异步阻塞非阻塞io 在JavaScript中,是否存在“同步非阻塞”和“异步阻塞”这两种情况?

在JavaScript中,是否存在“同步非阻塞”和“异步阻塞”这两种情况?首先,JS是单线程的,没有多线程自然没有同步异步之说。只要是执行JS代码,必然是同步的。JS所谓的同步和异步,和C及JAVA里

在JavaScript中,是否存在“同步非阻塞”和“异步阻塞”这两种情况?

首先,JS是单线程的,没有多线程自然没有同步异步之说。只要是执行JS代码,必然是同步的。JS所谓的同步和异步,和C及JAVA里的线程异步不是同一个概念,只用在JS执行线程使用AJAX和网络资源处理线程之间切换时是否等待。如果采用同步请求,则在请求完成之前,JS线程会一直挂起等待,必然是阻塞的。使用异步请求,则JS线程会在发起网络请求后继续向下执行。这个阻塞也是在实现引擎的C和C 层面来说的,而非针对JS本身。用户从JS层面真正能够直观体会到"阻塞",是在alert等弹出框显示时。浏览器内核本身并没有阻塞alert,而是在上层实现上去对它进行的阻塞。所以,我的答案是:negative