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>