javascript 作用域详解

来源:互联网 发布:gta5优化补丁3dm 编辑:程序博客网 时间:2024/05/22 17:09

首先介绍几个名词,第一次理解不了没关系,下面有详细的例子帮助理解。读完本文应该对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.变量对象

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

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

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小脚趾磨肿了怎么办 穿鞋小拇指磨脚怎么办 高铁东西忘了怎么办 人故意去撞车死了怎么办? 新货车上户超重怎么办 车险出保单车号填错怎么办 货车拦板变形了怎么办 行车监控看不清楚车号怎么办? 1.5米的鱼缸要怎么办 被锤子砸到手了怎么办 家里地下污水管道堵塞怎么办 家里pvc灯罩变黄怎么办 欧普吸顶灯灯罩坏了怎么办 硬盘用久了变慢怎么办 地税申报工资人员弄错怎么办 买保险保单丢了怎么办 买保险的银行卡丢了怎么办 没学过JAVA入职怎么办 磨砂皮擦了鞋油怎么办 磨破皮伤口有沙子怎么办 工行信用卡被风险锁定了怎么办 超重被超限站查住以后怎么办 银行卡输入密码次数超限怎么办 信用卡密码错误次数超限怎么办 农行密码错误次数超限怎么办 剪力墙偏心受拉怎么办 韵达快递寄丢了怎么办 重要快递送丢了怎么办 快递员送货丢了怎么办 买的快递丢失了怎么办 申通把件弄丢了怎么办 淘宝快递送丢了怎么办 我的快递丢了怎么办 顺丰快递丢件怎么办 韵达快递不发货怎么办 发物流丢了怎么办啊 圆通快递寄丢了怎么办 中通快递弄丢了怎么办 中通快递寄丢了怎么办 中通快递丢了怎么办 物流没保价坏了怎么办