关于JS的alert执行顺序问题

functiontest(){vara=1;setTimeout(function(){alert(a);a=3;},1000);a=2;setTimeout(funct... function test()
{
var a = 1;
setTimeout(function() {
alert(a); a = 3; }, 1000);
a = 2; setTimeout(function() {
alert(a); a = 4; }, 3000);}
test();
alert(0);
//请注意,代码中有三处alert.他们分别会alert出什么值,时间上的顺序是怎样的?
//请详述得到这个答案的原因,特别是test函数的局部变量a是对运行结果的影响.
展开
 我来答
梁洋洋001
2014-08-23 · TA获得超过298个赞
知道小有建树答主
回答量:322
采纳率:53%
帮助的人:175万
展开全部
 function test(){
    var a = 1;
    setTimeout(function() {
        alert(a);
a = 3;
    }, 1000);
    
    a = 2;
    
    setTimeout(function() {
      alert(a);
  a = 4;
  }, 3000);
  };
test();
alert(0);

//首先setTimeout是一个异步延迟函数

//先弹0是很明显的,因为test中的两个aelrt()都是延迟的,再弹0之前test中的a是2,

//0之后就是第一第一个定时器的函数alert(a)是2,原因在上面解释了,在弹2之后执行了a=3,然后是第二个定时器所以弹3

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式