javaScript学习day05

预解析:提前解析代码

就是在解析代码之前把变量、函数的声明提前(赋值不会提前)——提前到当前所在作用域的最上面。

1 function  f1(){
2     console.log("abc");
3 }
4 f1();//输出mmm
5 function f1(){
6     console.log("mmm");
7 }
8 f1();//输出mmm

 

1     f1();//输出undefined
2     function f1(){
3         console.log(num);
4         var num=10;
5     }
6     f1();//输出undefined

预解析相当于

把上述代码改为

    f1();//输出undefined
     function f1(){
         var num;
         console.log(num);
         num=10;
     }
     f1();//输出undefined    
1  f2();//undefined
2     var mm=20;
3     f2();//20
4     function f2(){
5         console.log(mm);
6         var nn=10;
7     }

 

预解析小案例

var f1;
f1(); //这里是不能调用的,因为那是一个表达式,不会提前预解析
f1=funuction(){
    console.log(a);
    var a=10;
};

 

posted @ 2020-09-14 09:02  _KKcoding  阅读(93)  评论(0编辑  收藏  举报