//变量声明提升规则
var my_var = 'this is my value';
(function(){
alert(my_var);//输出undefined
var my_var = 'local value';
})()
javascript
------解决方案--------------------
因为你下面定义了同名变量 javascript没有块级作用域 函数任何位置定义的变量可以在该函数的任意位置访问 只不过可能未赋值 所以是undefined 你下边定义的变量覆盖了全局的那个变量了
------解决方案--------------------
因为你函数内的局部变量覆盖了全局变量,就如上所说全局变量变成局部变量,而在alert的时候该变量并未赋值,因此需要将外部变量传进匿名函数内