• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

JavaScript 12

开发技术 开发技术 3小时前 1次浏览

预解析

   说明:浏览器中的js引擎运行JavaScript(js文件,HTML中的js部分等),分为:预解析、代码执行两个步骤

    a. 预解析,会把所有js中的 var (变量声明) 和 function (函数声明) 提升到当前作用域的最前边(也就是先执行var 变量名 和 function 函数名的操作)。
    b. 代码执行, 按照顺序从上到下依次执行。
    
    注: 

          1. 变量预解析:变量提升,只是提升变量声明,不会提升赋值操作,如:var a = 1, 只会将 var a提升
          2. 函数预解析:函数提升,只是提升函数声明,不会调用函数,如:function fun(){…} ,会将整个函数声明提升,但不会调用
 
        // 原始代码
        console.log(a);     
        var a = 1;
        console.log(a);     

        fun();
        function fun(){
            console.log('laile');
        };
        fun();

        // 特殊情况:此时提升的只是 var test 这个变量声明
        test();
        var test = function(){
            console.log('函数2被执行')
        };
        test();
        // js代码的预解析后的代码:
            // 1. 提升 的部分
            var a  
            function fun(){
                console.log('laile')
            }
            var test
            // 2. 依次执行的 部分
            console.log(a); // undefined
            a = 1;
            console.log(a); // 1
            fun();          // laile
            fun();          // laile
            test();         // test is not a function
            test = function(){
                console.log('函数2被执行')
            }
            test();         // 函数2被执行

 

预解析实例:

  JavaScript 12

 

 

 


程序员灯塔
转载请注明原文链接:JavaScript 12
喜欢 (0)