js变量的读写规则
读的规则: 向上级作用域查找,找到了,就使用,同时,停止查找;找到顶级作用域,都没有,报错
写(设置,赋值)的规则: 向上级作用域查找,找到了,就写入,同时,停止查找;找到顶级作用域,都没有,会默认在顶级作用域声明这个变量,然后使用
var a = 10;
function bigBox(){
console.log(a); //10
function sBox(){
// var a = 30; //带var的为局部变量
a = 40;
console.log(a) //40
function fn(){
console.log(a); //40
b = 50;
console.log(b); //50
}
fn();
console.log(b) //50
}
sBox();
console.log(b) //50
}
bigBox();
console.log(a); //40
console.log(b); //50