1个回答
展开全部
这个是异步的原因。浏览器解析js代码的时候是从上到下解析的,并且js是单线程的。
主线程执行第一句var a = 5;执行第二句
setTimeout(function() {
alert(a);
a = 666;
}, 1000);
的时候发现是一个异步函数就会放在队列中(等待主线程的任务都执行完毕的时候才会执行。)
主线程继续执行第三句a = 66;这时主线程的任务都执行完毕了,开始执行队列中的任务(也就是定时器那一块代码),
alert(a)的时候,这时a的值已经是66了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询