JavaScript函数是单线程执行的,假如说到了setTimeout函数设置的时间了,它就把代码插入执行队列,如果这个队列没有执行的代码,那就立即执行定时器代码,如果有正在执行的代码那么就要等到代码执行完毕后才执行定时器代码。这就意味并不是在定时器时间到了就立即执行代码而是把代码添加到执行队列
会先执行后面的代码。
window.setTimeout(function() {
alert("设置setTimeout。");
}, 3000);
alert("立即执行。");
setTimeout 相当于另起了一个线程 不会阻塞当前线程
alert(a);肯定会立即执行。
a++会在3秒后执行。
var a=10;
setTimeout(function(){
a++'
},3000);
alert(a);
执行以下就知道结果了