JavaScript 执行过程【 图示 】

2019-02-25  本文已影响0人  Christoles

1. 理论

JavaScript 是单线程的:

  浏览器执行JS脚本的时候,当js中的其中一环报错或者死循环,那么js就不会再继续往下执行了;直到这个问题被解决。

2. 流程图:

image.png

3. 描述:

js执行过程:

4. 相关实例:

4.1 请判断输出顺序:

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

输出顺序为 1,2,3

解析:
  页面中所有由setTimeout定义的操作,都将放在同一个队列中依次执行。而这个队列需要等到函数调用栈执行完毕后才会执行,并且按照其时延时间长短顺序执行代码!

4.2 请判断输出顺序:

            setTimeout(function(){
                console.log(a);
            },0);
            var a = 1;
            console.log(b);//undefined
            var b = 2;
            var c = 3;
            var d = 4;
            var e = 5;
            function fx(c){
                console.log(c);
            }
            function fn(e,d){
                console.log(d);
                setTimeout(function(){
                    console.log(e);
                },10);
            }
            setTimeout(function(){
                console.log(b);
            },20);
            fn(e,d);
            fx(c);

结果依次输出:undefined , 4 , 3 , 1 , 5 , 2

解析:

总结

  页面中所有由setTimeout定义的操作,都将放在同一个队列中依次执行。而这个队列的执行时间需要等到函数调用栈执行完毕后才会执行,也就是等待所有的可执行代码执行完毕,才会轮到setTimeout执行其内部操作,并且按照其时延时间长短顺序执行代码!

上一篇 下一篇

猜你喜欢

热点阅读