着名的JS setTimeout扭曲

时间:2016-10-06 15:04:22

标签: javascript

所以我们都知道在这种情况下会出现什么样的JS问题:

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

但是,我注意到在某些环境中,这将首先记录setTimeout(计时器ID)的结果,并且仅在此之后记录通常的结果。为什么会这样?是因为这些环境(chrome控制台,ff firebug控制台)总是期望/推断整个声明的“回归”吗?

1 个答案:

答案 0 :(得分:0)

Chrome控制台首先显示返回值(ID为setTimeout)。 之后console.log