JavaScript作用域和执行环境
来源:互联网 发布:免费cad2014软件下载 编辑:程序博客网 时间:2024/06/03 13:15
(1)首选要强调的一点是,JavaScript没有块级作用域
function fun(){ num = 10; alert('fun-num:'+num); //10 } alert('global-num:'+num); //10
我们在函数fun中声明了一个变量num,但是没有通过关键字var修饰,所有JavaScript默认将它作为一个全局的对象,这也是我们经常听到的
JavaScript的变量提升的概念。
(2)JavaScript中有个执行环境的概念,它定义了变量或函数有权访问的其他数据。每个执行环境都有一个关联对象,环境中所定义的对象和函数
都存在这个对象中,我们虽然不能直接获取这个对象,但解析器在后台会使用这个对象。
并且,在JavaScript中执行环境只有两种,一种是全局的执行环境,另一种是函数的执行环境。
说到代码的执行环境就不得不提对象的作用域链,先举个例子:
var num = 10; function fun(){ alert('num='+num); } fun(); //num=10
上述代码很简单,在调用fun()方法时,首先进入的是fun()这个函数的执行环境,JavaScript引擎把这个执行环境推到环境栈中,
代码开始执行,当用到num这个变量时,活动对象首先在自己的作用域中查找是否有这个对象,没有的话,就接着向上查找,最后在全局预中
找到这个对象,并使用它。而这个过程中,经历的所有的作用域形成了一个链,即作用域链。
作用域链的起始端始终是当前的执行环境,结尾段始终是全局环境,如果都没有找到,则汇报undefined。。。
注意:
当遇到with语句和try-catch语句时,作用域链会得到延长
(3)JavaScript垃圾回收
JavaScript拥有自动回收垃圾的机制,所以一般我们不需要手动维护对象的释放。
常用的垃圾回收策略有,标记清除和引用计数。
0 0
- JavaScript作用域和执行环境
- JavaScript作用域和执行环境
- JavaScript执行环境和作用域
- JavaScript学习-执行环境和作用域
- JavaScript执行环境和作用域链
- javascript执行环境和作用域
- JavaScript执行环境和作用域链
- JavaScript中的执行环境、变量对象和作用域链
- javascript中的执行环境和作用域链
- 重温javascript--执行环境和作用域链
- javascript中的执行环境和作用域详解
- javascript变量类型、执行环境和作用域、垃圾回收
- javascript的执行环境和作用域的理解
- JavaScript变量对象、执行环境和作用域链
- 浅谈javascript中的变量、执行环境和作用域
- 如何理解javascript执行环境和作用域链?
- javascript中作用域链和执行环境的理解
- JavaScript的执行环境和变量作用域
- openstack启动云主机的流程
- 软件测试使用测试文档
- TCP/IP 简介(一)
- 通过OpenSSL获取证书扩展属性之三:“颁发机构密钥标识”和"使用者密钥标识"
- unity3dGUI教程
- JavaScript作用域和执行环境
- ContentProvider的详细用法
- 一款非常不错的可拖曳空间
- The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,c
- Debug系列:VC++程序Release版崩溃的解决办法
- *****socket同步异步阻塞非阻塞区别
- getcwd
- Unity3D研究院之与Android相互传递消息(十九)
- PHP抓取网站图片脚本