变量的作用域链:
//就是一个作用域中套着一个作用域,形成了多层作用域,就是作用域链。
访问:
//在第一个函数中访问一个变量
//首先查看自身作用域中是否有这个变量,有就使用
//没有,向外层作用域查找,有就使用
//还没有,再向外层作用于查找,有就使用
//还是没有,继续,一直会查找到全局
赋值改变:
//在一个函数中改变一个变量的值
//首先查看自身作用域中是否有这个变量,有就使用
//没有,向外层作用域查找,有就使用
//还没有,再向外层作用于查找,有就使用
//还是没有,继续,一直会查找到全局
var n1 = 1;
var n2 = 2;
function fn1() {
var n1 = 3;
var n2 = 4;
function fn2() {
var n1 = 6;
function fn3() {
var n1 = 8;
console.log(n1);//8
n2 = 9;
console.log(n2);//9
}
fn3();
}
fn2();
}
fn1()
console.log(n2);//1