javascript 作用域详解

首先介绍几个名词,第一次理解不了没关系,下面有详细的例子帮助理解。读完本文应该对js的作用域有个清晰的认识。


1.执行环境(简称为环境)

问1:什么是执行环境?
答:js代码由变量和函数两部分组成。执行环境定义变量和函数的作用域范围。

问2:执行环境太抽象了,有没有什么看见摸得着的来帮助理解?
答:执行环境概括的说只有两种。

<html>
    <head></head>
    <body>
        <script>
            var aa = 12;
            function bb () {
                var cc = 'hello javascipt';
                alert(cc);
            }
        </script>
    </body>
</html>
  • 第一种:全局执行环境。即html/jsp中最外层的一个环境,通常理解为window对象。

上述代码中就存在一个全局执行环境,这个环境中有一个变量 aa和一个函数 bb;
调用全局执行环境中的变量 window.变量名,window. 也可以省略,如 window.aa;
调用全局执行环境中的函数 window.函数名() ,window. 也可以省略,如 window.bb()。

  • 第二种:每个函数都有自己的执行环境。通常所说的执行环境都指这个,因为全局执行环境一个页面也就那么一个。

上述代码中bb函数就有一个执行环境——也可以认为是局部执行环境。这个执行环境中只有一个变量 cc。

问3:执行环境什么时候被创建,什么时候被销毁?
答:全局执行环境和局部执行环境分开说。

  • 对于全局执行环境

加载页面时创建全局执行环境,关闭网页或浏览器时销毁全局执行环境。

  • 对于局部执行环境

当调用这个方法时才会创建执行环境,单独的一个方法不去调用它是不会创建执行环境的;
该执行环境中所有代码执行完毕后,环境被销毁,保存在其中的所有变量和函数也随之销毁。

2.变量对象

每一个执行环境都有一个与之一一关联的变量对象。

问:什么是变量对象?
答:执行环境中定义的所有变量和函数都是存放在这个变量对象里的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值