日期:2014-05-16  浏览次数:20516 次

函数中两个变量重名怎样覆盖
function test(){
var a=10;
var a=100;
alert(a);
}
test();//输出100
function test2(){
var a=10;
var a;
alert(a);//输出10  
}
test2();
第二个函数 怎么不是undefined 啊


------解决方案--------------------
js中变量的声明和赋值不是同时进行的;

声明是在函数最开始进行的,所以你将a变量声明两次,但最终只有一个,赋值后就是10了,也就是说看着第二个var a声明在第一次赋值后面,但它实际在函数最初就执行了。