变量作用域
1.变量作用域分为全局变量和局部变量
var a = 10;//全局变量
function show() {
console.log(a);//全局变量
var b = 20;//局部变量
console.log(b);
}
show();
console.log(b);
function show(a){
console.log(a);//局部变量
}
show(10);
console.log(a);//局部变量
注 :全局变量是在函数外声明的变量, 声明变量时没有使用var。而局部变量是在函数内声明的变量(包含参数位置)
2. 就近原则
var a = 10;//全局变量
function show() {
var b = 20;//局部变量
console.log(a);//就近原则
}
show(30);
console.log(a);
3.变量提升
if(true){
var a=20;//全局变量
console.log(a);
console.log(b);//undefined
}else{
var b=30;//全局变量
}
console.log('out:',a);
console.log('out:',b);
// //等同于如下代码
// var a,b;
// if(true){
// a=20;
// console.log(a);
// console.log(b);//undefined
// }else{
// b=30;
// }