1.定义
变量在当前环境Now、内部环境f1、内部深层环境f23…都起作用的现象形成了一个链条,这个链条称为变量的“作用域链”。
<title>新建网页</title>
<script type="text/javascript">
var banji = "0000";
console.log('班号:'+banji);
function f1(){
console.log('f1:'+banji);
function f2(){
console.log('f2:'+banji);
}
f2();//0000
}
f1();//0000
</script>
2.作用域链的作用
- 变量必须先声明后使用,函数可以先使用后声明
- 内部环境可以访问外部环境的变量,反之不行
- 变量的作用域是声明时候决定的,而不是运行时候
<script type="text/javascript">
var week = "Sunday"; //week是全局变量
function f1(){
console.log('星期:'+week);
}
function f2(){
var week = "Monday"; //week局部变量
f1();
}
f2(); //sunday
</script>
<title>新建网页</title>
<script type="text/javascript">
var subject = "JS"; //week是全局变量
function f1(){
console.log('科目:'+subject);
}
subject = "html"; //week局部变量
f1(); //html 按顺序执行
</script>
3.AO活动对象
在不断的寻找变量的过程,看起来是一个动态过程,其实是一个固态过程。在一个环境内部获得一个变量,该变量早早的已经固化成本身环境的AO活动对象属性