变量作用域=>Js是函数作用域编程语言:变量只在其定义时所在的function内部有效(形参也是 局部变量)
function fun() {
var a = 10;
/* 变量a是在fun函数中被定义的,所以变量a只在fun函数内部有定义,
fun函数就是a的作用域,变量a被称为局部变量 */
}
fun();
console.log(a);//报错
全局变量=>如果不将变量定义在任何函数的内部,此时这个变量就是全局变量,他在任何函数内都可以被访问和更改
var a =10;//全局变量
function fun(){
a++;
console.log(a);//输出11
}
fun();
console.log(a)//11
/*遮蔽效应:如果函数中也定义了和全局同名的变量。则函数的内部变量会将全局的变量‘遮蔽’ */
var a =10;
function fun(){
var a=5;//局部变量a将全局变量a遮蔽了
a++;
console.log(a)//6
}
fun();
console.log(a)//10