js为什么是单线程的
如果js是多线程的话,一个线程添加DOM一个线程删除DOM那就会产生差错,浏览器不知道应该听谁的,到底删除DOM还是添加DOM。
js是单线程语言,浏览器只分配给js一个主线程,用来执行任务(函数),但一次只能执行一个任务,这些任务形成一个任务队列排队等候执行,但前端的某些任务是非常耗时的,比如网络请求,定时器和事件监听,如果让他们和别的任务一样,都老老实实的排队等待执行的话,执行效率会非常的低,甚至导致页面的假死。所以,浏览器为这些耗时任务开辟了另外的线程,主要包括http请求线程,浏览器定时触发器,浏览器事件触发线程,这些任务是异步的。
来自:https://blog.csdn.net/weixin_49200148/article/details/107165334