function test(a){
a=10; //**********
alert(a); // 弹出10
}
test(5);
alert(a); //报错 a is not defined
在函数体内,我写了a=10。我的理解是把10赋值给一个全局变量a,因为没有var的变量等同于全局变量。
我在函数体外,alert(a)却报错了:a is not defined。请问为什么我在函数体外不能访问到变量a呢?
a不是全局变量,如果以下函数才是全局变量
function test(){
a=10;
}
因为在test
里a
是你的形参,形参实际上相当于函数内的一个局部变量;你在test
内给a
赋值是赋值给形参a。
function test(a) {
alert(a);
}
test(5); // 弹出5,不是很明显么
除非:
function test(b){
a=10; // 这样才是给全局变量a 赋值
alert(a); // 弹出10
}
test(5);
alert(a); // 10
就是2楼说的,形参实质是函数内的局部变量