美文网首页
经典面试题2

经典面试题2

作者: Marin_chen | 来源:发表于2019-11-03 00:05 被阅读0次

接经典面试1的说法,在笔试的时候遇到这样的一个题目:

function printing() {

          console.log(1);

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

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

          console.log(4);

}

printing();

问最后的输出结果,并阐述原因.

        这里的答案是:1 4 3 2 ,为什么呢?

        在做这样的题目的时候需要理解setTimeout()的作用,这里是设置一个定时器,相比较这两段代码:setTimeout(function() { console.log(3); }, 0);和console.log(4);可以很清晰的看到第一段代码被设置了setTimeout(),在JS中只要代码中被设置了setTimeout(),相比较未被定义setTimeout的代码块,被设置的那段代码都会被排队,即:先执行未被设置setTimeout()的代码块,在执行被设置的代码块,到这里就很清晰了,JS中会先编译:console.log(1);和console.log(4),那么这段两段就会被先后打印出来,即为:1  /  4 ,再然后由于setTimeout()被设置了定时时间,也会有个先后执行顺序,设置的时间越长,被编译的排队时间就越长,这样就会先输出2 / 3,所以最终的结果就是:1 / 4 / 2 / 3.

本文纯属原创;

分类:经典面试题经历;

相关文章

网友评论

      本文标题:经典面试题2

      本文链接:https://www.haomeiwen.com/subject/odfkbctx.html