1 <script> 2 // f1(); 3 // console.log(c);//9 4 // console.log(b);//9 5 // console.log(a);//报错 6 // function f1() { 7 // var a = b = c = 9; 8 // console.log(a);//9 9 // console.log(b);//9 10 // console.log(c);//9 11 // } 12 //调用时f1函数提前 13 //var a = b = c = 9;相当于 14 // var a=9;//局部变量 15 // b=9; 16 // c=9;//b和c是隐式全局变量 17 18 19 f1(); 20 var f1=function() { 21 console.log(a); 22 var a=10; 23 } 24 // 上面这段相当于 25 // var f1; 26 // f1();//-----不能调用,于是报错 27 // f1=function() { 28 // console.log(a); 29 // var a=10; 30 // }//函数里所有东西都没了 31 </script>
注意:1.预解析相当于函数定义提前,赋值并没有提前
2.var a = b = c = 9;相当于 var a=9;局部变量
b=9;
c=9;b和c是隐式全局变量