浏览器组成
WEB APIs(浏览器提供的js对象)
{
DOM(document)
ajax(XMLHTTPRequest)
setTimeout
}
v8引擎{
堆,
调用栈
}
event loop
callback queue(调用队列){ onclick onload ondone}
栈和队列循环,先执行栈里函数,再看队列里是否有函数
死递归导致栈溢出异常
function foo(){
return foo();
}
同步阻塞
第一件事没有完成,第二件事不会开始
一个函数没有执行完,其他函数无法进栈
异步回调
回调函数放在队列
在线动画演示代码异步执行
http://latentflip.com/loupe
参考视频
https://www.youtube.com/watch?v=8aGhZQkoFbQ