变量的作用域
-
在javascript中,var定义变量实际是有作用域的。
假设在函数体声明中,则在函数体外不可以使用~(非要想实现的话,后面可以使用闭包)
function qj(){
var x = 1;
x = x + 1;
}
x = x + 2; //Uncaught ReferenceError: x is not defined
- 如果两个函数,使用了相同的变量名,但是只要在函数内部,就不冲突
function qj(){
var x = 1;
x = x + 1;
}
function qj2(){
var x = 'A';
x = x + 1;
}
- 内部函数可以访问外部函数的成员,反之则不行
function qj(){
var x = 1;
//内部函数可以访问外部函数的成员,反之则不行
function qj2(){
var y =x + 1;//2
}
var z = y + 2; //VM68:1 Uncaught ReferenceError: z is not defined
}