作用域的原理,对JS将如何解析标识符做出了解答.而作用域的形成与执行环境和活动对象紧密相关. 我们对于JS标识符解析的判断,存在一个常见误区 首先,看一个关于JS标识符解析的问题 ,源于风雪之隅提出的问题 var name = 'globalName'; function funcA() { console.log(name); var name = 'funAName'; console.log(name); console.log(age); } funcA(); 这段代码的运行结果是怎样的…
深入理解javascript中执行环境(作用域)与作用域链 相信很多初学者对与javascript中的执行环境与作用域链不能很好的理解,这里,我会按照自己的理解同大家一起分享. 一般情况下,我们把执行环境分为全局执行环境和局部执行环境,其中局部执行环境我们又可以称之为函数执行环境.那么究竟什么使执行环境呢?通俗的说,执行环境即为代码执行时所处的环境.我们下来看一看如下代码,再进一步分析之. <script>var name="zhuzhenwei"; function ch…
javascript高级程序设计中:对执行环境.作用域链.变量对象.活动对象的解释: 1.执行环境: 执行环境:有时也叫环境:是JavaScript中最为重要的一个概念:执行环境定义了变量或函数有权访问的其他数据: 2.变量对象: 每一个执行环境都有一个与之关联的变量对象:环境中定义的所有的变量和函数都保存在这个的对象中: 3.作用域链: 代码在环境中执行时:会创建变量对象的作用域链:保证对执行环境有权访问的所有变量和函数的有序访问:作用域链的前端:始终是当前执行代码所在环境的变量对象: 4.活…
    执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为.每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中.我们编写的代码是无法访问这个对象的,但解析器在处理数据时会在后台使用它.       全局执行环境是最外围的一个执行环境,在Web浏览器中,全局执行环境被认为是window对象,因此所有全局变量和函数都是作为window对象的属性和方法来创建的.某个执行环境中的所有代码执行完毕后,该环境就会被销毁,保存在其中的所有变量和函数定义也随之销毁…
执行环境有全局执行环境和函数执行环境之分,每次进入一个新执行环境,都会创建一个搜索变量和函数的作用域链.函数的局部环境不仅有权访问函数作用于中的变量,而且可以访问其外部环境,直到全局环境.全局执行环境只能访问全局执行环境的变量和函数,不能直接访问局部环境中的信息:变量的执行环境有助于确定何时应该释放内存.离开作用域的值会被标记为可以回收,将在垃圾收集期间被删除.javascript中有“标记清楚” 和 “引用计数” 两种垃圾收集算法. 执行环境 (execution context) 执行环境是…
执行环境(execution context,为简单起见,有时也成为“环境”)是javascript中最为重要的一个概念.执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为.每个执行环境都有一个与之关联的变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中.虽然我们编写的代码无法访问这个对象,但解析器在处理数据是会在后台使用他. 这段话中着重介绍了执行环境的这个概念,这个执行环境的作用是定义了一种行为.这种行为定义了变量或者函数访问其他数据的权限…
执行环境是javascript一个重要的概念,执行环境定义了变量有权访问其他数据决定了他们各自的行为,每个执行环境 都有一个与之关联的变量,环境中定义的所有变量和函数都保存在这个对象中,虽然我们编写的代码无法访问这个对象,但 解析器在处理数据时候会在后台使用. 全局执行环境是最外围的一个执行环境,根据ecmascript实现所在的宿主环境不同,表示执行环境的对象也不一样在 web浏览器中,全局执行环境被认为是window对象,因此所有的全局变量和函数都是作为window对象的属性和方法创建 的某…
原文:从头开始学JavaScript (九)--执行环境和作用域 一.执行环境:定义了变量或者函数有权访问的其他数据,决定了它们各自的行为.每个执行环境都有与之关联的变量对象. 变量对象:保存着环境中定义的变量和函数. 作用域链:保证对执行环境有权访问的所有变量和函数的有序访问. 标识符解析:沿着作用域链一级一级地搜索标识符的过程. 通过例子来说明执行环境.变量对象以及作用域链: <script type="text/javascript"> var color = &qu…
这是我在公众号(高级前端进阶)看到的文章,现在做笔记   https://github.com/yygmind/blog/issues/18 红宝书(p178)上对于闭包的定义:闭包是指有权访问另外一个函数作用域中的变量的函数, MDN 对闭包的定义为:闭包是指那些能够访问自由变量的函数. 其中自由变量,指在函数中使用的,但既不是函数参数arguments也不是函数的局部变量的变量,其实就是另外一个函数作用域中的变量. 使用上一篇文章的例子来说明下自由变量 function getOuter()…
在这篇文章中,我会深入理解JavaScript最根本的组成之一 : "执行环境(执行上下文)".文章结束后,你应该对解释器试图做什么,为什么一些函数/变量在未声明时就可以调用并且他们的值是如何确定的有一个清晰的认识. 什么是执行环境(执行上下文)当代码在JavaScript中运行的时候,代码在环境中被执行是非常重要的,它会被评估为以下之一类型来运行:全局代码:默认环境,你的代码第一时间在这儿运行.函数代码:当执行流进入一个函数体的时候.Eval代码:在eval()函数中的文本. 你可以…