- JavaScript变量作用域,看一下代码,(变量提升链接在下方↓)
<script type="text/javascript"> var a = 5&&6; alert(a); // 6 function getB() { var a = 7; //我个人理解 var 声明变量的时候应该是 决定了变量的作用域。当在函数内部再次声明变量a的时候,这个a 和 函数外部的a 就不是一个变量了,所以打印的值也不一样。全局作用域的a还是使用全局作用域的a的值 alert(a); //7 } getB(); alert(a); //6 </script> // output 6 7 6 <script type="text/javascript"> var a = 5&&6; alert(a); function getB() { a = 7; //而在函数内部如果没有重新var 声明的话,就是还使用全局作用域的变量a ,所以函数里修改a 的值,也就是修改全局作用域的a 的值。后面打印a 的值也变了。 alert(a); } getB(); alert(a); </script> //output 6 7 7
- 像PHP中是不允许在同一个作用域中声明两个同名函数的;而JavaScript 却可以这样做,同作用域下后面函数会覆盖前面的函数。
- 变量提升and函数提升:https://www.cnblogs.com/liuhe688/p/5891273.html