变量声明提升和预解析

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8 
 9 <script>
10     //预解析:js的解析器在页面加载的时候,首先检查页面上的语法错误。把变量声明提升起来。
11     //变量值提升变量名,不提升变量值。而用function直接定义的方法是整体提升。
12     //1.查看语法错误。
13     //2.变量声明提升和函数整体提升(变量声明提升的时候,只提升变量名,不提升变量值)
14     //3.函数范围内,照样适用。
15     var aaa;
16     console.log(aaa);
17     aaa = 111;
18     fn();
19 
20     function fn(bbb){
21         //变量声明提升在函数内部照样实用。
22         //函数的就近原则。
23         var aaa;
24         console.log(aaa);
25         aaa = 222;
26     }
27 
28     function fn2(bbb){
29         //两个函数中的局部变量不会相互影响。
30         console.log(bbb);
31     }
32 
33 </script>
34 
35 </body>
36 </html>

猜你喜欢

转载自www.cnblogs.com/BingBing-Deng/p/10250590.html