老师您好,如下代码执行后有点区别?如果是1毫秒,打印的是1,4,2,3 大于1毫秒后是1,4,3,2

来源:17-4 异步和单线程-解答

蓝志

2017-10-25

<script type="text/javascript">

function printing() {

   console.log(1);

   setTimeout(function() { console.log(2); }, 1);

   setTimeout(function() { console.log(3); }, 0);

   console.log(4);

}

printing();

</script>


写回答

1回答

双越

2017-10-25

setTimeout 的第二个参数至少要大于 4,否则和 0 等同效果(以前的经验,现在可能不是 4)。总之,这个参数不能太小,太小了就当 0 处理了。

如果按照这个逻辑,你提的问题就解释通了。

1
3
蓝志
回复
双越
我写错了,谢谢老师指正。
2017-10-25
共3条回复

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程