事件循环机制:
在执行上下文的过程中,对函数的入栈和出栈。执行前函数入栈,执行后函数出栈。如若遇到了一些异步操作像回调函数以及AJAX,setTimeOut等,会先将他们交给浏览器的其他模块去执行,执行完后,会把回调函数放入队列中。
console.log(1);
setTimeout(function() {console.log(2); },0 );
console.log(3);
// 输出结果是1 3 2
1. 执行第一句,放入call stack中,输出 1
2. 第一句出栈,执行第二句,由于是异步执行,交给其他模块。
3. 执行完后,将回调函数放入task queue中。
4.执行下一句,同第一步一样,将语句入栈并执行,输出3。
5. 语句出栈,此时call stack空了。开始执行task queue任务,输出2。
网友评论