函数进阶
一、变量作用域
变量的作用范围
在ES5中,根据变量的作用范围不同,将变量分为:
全局变量:在整个文档中都有效(任何地方都能访问,任何地方都能修改),在函数外声明的变量都是全局变量
for (var i = 0; i < 3; i++) {
//i全局变量
console.log(i);//0 //1 //2
}
console.log(i);//3
var a = 10;//全局变量
console.log(a);//10
<script>
console.log(a);//10
</script>
var a = 10;//全局变量
function show(){
console.log(a);//10
}
show();
var a = 10;//全局变量
if(true){
console.log(a);//10
}
{
//代码块
var b=100;//全局变量
console.log(b);//100
}
console.log(b);//100
局部变量:在指定返回有效(函数内能访问,出了函数就访问不到)在函数内声明的变量(包括参数部分)
var a=10;//全局变量
function fn(){
var b=20;//局部变量
console.log(b);
console.log(a);//全局变量
}
console.log(b);//报错 局部变量只在函数内有效
fn();//20 10
function show(a, b) {
console.log(a, b);
}
show(10, 20);//10 20
console.log(a,b);//报错
//局部变量(包括参数部分)只在函数内有效
var a=10;//全局变量
function fn(){
console.log(a);//10
a=20;//修改了全局变量的值
console.log(a);//20
}
fn();
console.log(a);//20