JS 的setTimeout的运行方式

1
<span style= "font-size:18px;" >例子: 1 </span>
?
1
2
3
4
5
6
7
8
9
function test() {
       var a = 1 ;
       setTimeout(function() {
         alert(a);
         a = 5 ;
       }, 1000 );
     }
     test();
     alert( 0 ); //前面的两个setTimeout延迟了 所以先执行这个
结果:先弹出0,然后弹出1.

例子2

?
1
2
3
4
5
6
7
8
9
10
11
function test() {
       var a = 1 ;
       setTimeout(function() {
         alert(a);
         a = 5 ;
       }, 1000 );
       alert(a);
 
     }
     test();
     alert( 0 );

结果:先弹出1,然后弹出0,最后弹出1 。

先执行test()里的alert(),因为function此时还未执行,因此,a任然为1.因为function还在被延迟着,因此,执行了alert(0),最后到时间了,执行了alert(a),因为前面a已经变为1了,所以,最后弹出的是1.

例子:3:

?
1
2
3
4
5
6
7
8
9
10
function test() {
       var a = 1 ;
       setTimeout(function() {
         alert(a);
         a = 5 ;
       }, 1000 );
       a = 19 ;
     }
     test();
     alert( 0 ); //前面的alert因为setTimeout延迟了 所以先执行这个。
结果:会先弹出0,然后弹出19.

延迟了function() {
alert(a);
a = 5;
}

但是a=19还是会照常执行,不是等到延迟结束。所以,执行这个被延迟函数的时候,a=19了!

例子4

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function test() {
       var a = 1 ;
       setTimeout(function() {
         alert(a);
         a = 5 ;
       }, 1000 );
       a = 19 ;
     setTimeout(function() {
        alert(a);
         a = 4 ;
       }, 3000 );
     }
     test();
     alert( 0 ); //前面的两个setTimeout延迟了 所以先执行这个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值