作用域的作用

来源:互联网 发布:对云计算的理解ibm 编辑:程序博客网 时间:2024/04/20 15:03

1、变量必须先声明、后使用

函数可以“先使用、后声明”,原因是函数有“预加载”过程(函数声明先于其他执行代码进入内存)。本质还是函数的声明在前,使用在后。


2、内部环境可以访问外部环境的变量,反之不然

<script type="text/javascript">    var age = 20;    function f1() {        var height = 170;        console.log(age);   //内环境访问外环境 变量    }    f1();    console.log(height);    //外环境访问内环境 变量  (不允许)</script>
效果图:

3、变量的作用域是声明时决定的,而不是运行时

<script type="text/javascript">    //变量的作用域是“声明时”决定的,而不是运行时    var food = "milk";    function f1() {        //访问food变量,当前环境没有food变量,但是其外部环境有该变量        console.log(food);    }    function f2() {        var food = "brand";        f1();    }    f2();</script>
效果图:


AO活动对象

AO: Active Object 活动对象

执行环境:

js代码执行是有环境的

该环境定义了其有权访问的其他数据

环境有一个与之关联的活动对象AO

环境中所有的变量函数都是活动对象AO的属性

全局环境是最外围的执行环境,活动对象是window对象

执行环境中的代码执行完毕后就被销毁