灵魂三问 JS为什么是单线程的 我们都知道,JS是单线程的语言,那为什么呢?我的理解是JS设计之初就是为了在浏览器端完成DOM操作和一些简单交互的,既然涉及到DOM操作如果是多线程就会带来复杂的同步问题,比较极端的例子就是两个线程可能一个在删除某个DOM节点一个却在修改这个DOM节点,这是浏览器以哪个线程为准呢? 为什么需要异步 如果没有异步,单线程的JS从上到下执行遇到一段代码需要执行比较久时就会阻塞页面的渲染,造成页面假死,这显然是一种很差的用户体验 单线程又是如何实现异步的呢 单线程之所以…