function out(){
var a=1;
inner();
function inner(){
var b=2;
console.log(a);
console.log(b);
};
};
out(); //a=1,b=2
console.log(a); //报错无值
- 函数内的变量仅在该函数内部有意义
- 函数内定义的变量不写var,将会变成全局变量
- 当遇见一个变量时,JS引擎会从其所在作用域开始依次向外寻找
- 函数的形参是局部变量
- 函数可嵌套,与变量同理,内嵌函数只能在外嵌函数中调用,一般情况下离开嵌套函数将不能调用
- 作用链:一个变量在使用时,会在当前层寻找定义,找不到继续向上查询,直至找到或者报错
- 只有函数能管理作用域