函数声明和预解析

 1 <script>
 2     //预解析:js的解析器在页面加载的时候,首先检查页面上的语法错误。把变量声明提升起来。
 3     //变量值提升变量名,不提升变量值。而用function直接定义的方法是整体提升。
 4     //1.查看语法错误。
 5     //2.变量声明提升和函数整体提升(变量声明提升的时候,只提升变量名,不提升变量值)
 6     //3.函数范围内,照样适用。
 7     var aaa;
 8     console.log(aaa);//undefined
 9     var aaa= 111;
10     aaa = 111;
11     fn();
12 
13     function fn(bbb){
14         //变量声明提升在函数内部照样实用。
15         //函数的就近原则。
16         var aaa;
17         console.log(aaa);//undefined
18         aaa = 222;
19     }
20     fn2();
21     function fn2(bbb){
22         //两个函数中的局部变量不会相互影响。
23         console.log(bbb);//undefined
24     }
25 
26 </script>
原文地址:https://www.cnblogs.com/my12-28/p/11738980.html