JavaScript是单线程的,只有一个执行栈,一次只能做一件事. 在浏览器中,却“好像”可以同时做几件事:点击,发送请求,执行多个函数,解析代码. 这是因为浏览器实现的Event Loop机制. Web API setTimeout,ajax,dom操作回调,等等都是浏览器(JS runtime)提供的.setTimeout or http or DOM 这些东西在V8引擎代码中都是找不到的,他们都是浏览器自身部署的 这些操作不占用js线程,只有在回调函数需要执行时,才会将函数推入js执行栈.…