javaScript中的异步操作

来源:互联网 发布:经济学教材 知乎 编辑:程序博客网 时间:2024/06/08 05:03

JavaScript中的四种异步情况:

一、setTimeout

二、setInterval

三、事件

四、Ajax

举例:

for (var i=0;i<2;i++) {
setTimeout(function(){
console.log(i);
},0);
};

运行结果:连续打印两个2

分析:这段代码的执行涉及到一个顺序问题,因为settimeout是异步的,所以是后执行,即使时间间隔为0,定时器里面的代码也要等到所有的代码都执行完了之后再执行。

    其实上述代码可以理解为在两次循环中,都分别定义了一个定时器,只是在第一次循环时定义的定时器没有执行,因为:还有js代码没有执行,即第二次循环未执行。所以

异步的定时器需要等,等接下来的循环执行完毕后(或者说接下来的非异步代码执行完毕后),才能执行异步的定时器代码。然而当异步的代码开始执行的时候,变量i已经通过两

次循环变成了2

1 0