预解析面试题类型

        function  test(a,  b)  {  
            console.log(a); //function
              
            console.log(b); //undefined
              
            var  b  =  234;  
            console.log(b); //234
              
            a  =  123;  
            console.log(1); //1
              
            function  a()  {}  //执行的时候这个函数声明会被提前,也就是说在开头就已经声明
            var  a;  
            b  =  234;  
            var  b  =   function ()  {};  
            console.log(a); //123
              
            console.log(b); //function
        }
        test(1);

预解析
javascript是一个解析性预言,就是在代码执行之前,对代码进行通读。
一共解析俩个:
1.声明式函数
2.var 关键字
做俩件事:会把var声明的变量提前(即浏览器知道有一个变量,但还没有值),和把声明式函数提前

var声明的变量和function声明的函数在预解析的时候有区别,var声明的变量在预解析的时候只是提前的声明,function声明的函数在预解析的时候会提前声明并且会同时定义。也就是说var声明的变量和function声明的函数的区别是在声明的同时有没同时进行定义。

posted @ 2020-10-20 15:50  孙淡策  阅读(307)  评论(0)    收藏  举报