var aaa="aaa"; function test() { console.log(aaa); //undefined var aaa="123"; console.log(aaa); //123 } test();
由于函数作用域的特性,局部变量在整个函数体始终是有定义的,也就是说在函数体内局部变量覆盖了同名变量,以上代码等价于
var aaa="aaa"; function test() { var aaa; console.log(aaa); //undefined var aaa="123"; console.log(aaa); //123 } test();