首先,我们要知道执行环境和作用域是两个完全不同的概念. 函数的每次调用都有与之紧密相关的作用域和执行环境.从根本上来说,作用域是基于函数的,而执行环境是基于对象的(例如:全局执行环境即window对象). 换句话说,作用域涉及到所被调用函数中的变量访问,并且不同的调用场景是不一样的.执行环境始终是this关键字的值,它是拥有当前所执行代码的对象的引用.每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中.虽然我们编写的代码无法访问这个对象,但解析器在处理数据时会在…
js执行环境.作用域 执行环境:是javascript中的一个重要的概念,<javascript高级程序设计第三版>的定义是:执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为.执行环境其实就是一个概念,一种机制 执行环境作用:执行环境就是用来完成javascript运行时在作用域.生存期等方面的处理. 变量对象:每一个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中. 全局执行环境:最外围的一个执行环境,根据ECMAScript实现所在的宿主环境…
JS中的执行环境,顾名思义就是变量或函数所执行时的环境.在我的理解中,执行环境和作用域相差不大. 每个函数都有自己的执行环境,当执行流进入一个函数时,函数的环境就会被推入一个环境栈中.而在函数执行之后, 栈将其环境弹出,把控制权返回给当前的执行环境.简单点来说,就像C语言中的栈,当一个函数被运行时,它总是先运行 最内部的函数(也就是局部函数),再一层一层的向外部执行,就像一个栈一样,后进先出. 当代码在一个环境中执行时,会创建变量对象的一个作用域链.作用域链好像一把梯子,最外层的(全局环境)永远…
 今天刚刚开通博客,也是第一次写博文,略感紧张.作为一个表达能力弱弱的人来说,自己花三分钟理解一个知识点,当别人问起时,也许需要30分钟才只是让别人知道自己在说什么,一点也不夸张,希望在博客上可以练习对语言的组织能力并记录学习笔记与大家一起交流. 进入正题>> 首先,相关的概念定义如下: 1. 执行环境: 所有 JavaScript 代码都是在一个执行环境中被执行的.执行环境是一个概念,一种机制,用来完成JavaScript运行时在作用域.生存期等方面的处理,它定义了变量或函数有权访问的其他数…
1.执行环境 JavaScript 代码都是在执行环境中被执行的.执行环境是一个概念,一种机制,用来完成JavaScript运行时在作用域.生命周期等方面的处理,它定义了变量或函数是否有权访问其他数据,决定各自行为.每个执行环境都有一个变量对象(我理解为环境变量对象),在代码执行环境中所有的变量.函数都保存在这个对象中: 全局的执行环境是最外围的执行环境,根据ECMAScript 实现所在的宿主环境同,表示执行环境的对象也不一样,在WEB浏览器中,全局执行环境被认为是Windows对象,因此所有…
最近在重读<javascript高级程序设计3>,觉得应该写一些博客记录一下学习的一些知识,不然都忘光啦.今天要总结的是js执行环境和作用域. 首先来说一下执行环境 一.执行环境 书上概念,执行环境定义了变量或者函数有权访问的其他数据,决定了他们各自的行为.每个执行环境都有一个与之关联的变量对象.环境中定义的所有变量和函数都保存在这个对象中.虽然我们在编写代码的时候无法访问这个对象,但解析器在处理数据时会在后台用到它. 执行环境是一个概念,一种机制,它定义了变量或函数是否有权访问其他数据 在j…
最近在面试时被问到了对作用域链的理解,感觉当时回答的不是很好,今天就来说说js中的作用域链吧. 首先来说说js中的执行环境,所谓执行环境(有时也称环境)它是JavaScript中最为重要的一个概念.执行环境定义了变量或函数有权访问的其他数据 ,决定了它们各自的行为.而每个执行环境都有一个与之相关的变量对象,环境中定义的所有变量和函数都保存在这个对象中. 理解了执行环境,现在就看看什么是作用域链吧.每个函数都有自己的执行环境,当代码在执行环境中执行时,就会创建变量对象的作用域链.作用域链保证了对执…
主要的是执行环境和作用域链. 执行环境 执行环境定义了变量或函数有权访问的其他数据,每个函数都有一个执行环境,每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个变量对象中,但是我们编写代码不能访问这个变量对象,解析器在处理数据时会在后台使用它. 变量对象 每一个函数都有一个执行环境,每一个执行环境都有一个相关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中. 环境栈 当执行流进入一个函数时,函数的环境就会被推入一个环境栈中.而在函数的执行之后,栈将其环境弹出…
首先介绍一些即将用到的概念: 执行环境:  它定义了变量和函数有权访问其他数据的范围,每一个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个变量对象中.   所有javascript代码都是在一个特定的执行环境中被执行的,当调用一个javascript函数时,就会创建相应的执行环境,如果又调用另外一个函数,则又会创建一个新的执行环境,当调用函数返回后,执行过程会返回原始的执行环境,所以javascript的执行环境明显是按照栈的形式存储,即这一系类的执行环境构成了一个执…
这是大虾的第一篇博文,大虾试图用最直白的语言去描述出所理解的东西,大虾是菜鸟,水平有限,有误的地方希望路过的朋友们务必指正,谢谢大家了. 从读书时代一路走来,大虾在学习的时候逐渐喜欢上了去追寻根源,这个东西到底是为什么?他有什么用处?他解决了什么问题?他是怎么被想到的?从这些问题当中,我们能够学到非常多,大虾深有体会.我相信,即使是这些东西在发明之时,就算是创始人也未必思考的这么周全,很多情况下,它一定是先遇到了什么实际问题之后,再去思考解决方案.也就是说,每一个新知识新东西的提出,一定是为着解…