<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
原文:https://www.cnblogs.com/bneglect/p/12151911.html