javascript 变量的提升
下面是一个关于全局和局部作用域的问题
var a = 123;
function f(){
alert(a);
var a = 1;
alert(a);
}
f();
大家第一眼看到后都会认为第一次alert()弹出的结果是123,第二次的alert()的结果是1。
事实上不是这样的,第一次alert的结果是undefined,这是因为函数域优先于全局域,所以局部变量a会覆盖所有与它同名的全局变量,尽管在alert()第一次被调用时,a还没有被正式定义。第二次的结果是1;

浙公网安备 33010602011771号