javascript中执行环境和作用域什么区别,是一回事吗

不是一个东西,一般来说,js执行环境就是浏览器。作用域应该说的是js变量、对象、函数的作用域,主要是变量的生存周期,就是说再执行哪些代码之后,这个变量就没有用了。

倚天杖
浏览 1096回答 3
3回答

米琪卡哇伊

1 执行环境(execution context) 和作用域 (scope)的区别在哪里? 网上看了好多文章都是在解释 执行环境 和 作用域链(scope chain) 之间的关系, 很少有解释执行环境和作用域(scope)之间的区别的. 为什么js高级程序设计上只保留了执行环境这个概念, 而没有提到作用域(scope)这个概念, 只提了作用域链(scope chain)2 变量对象(variable object)和活动对象(activation object)的区别在哪里3 执行环境作为一个抽象概念, 每个执行环境都有一个与之关联的变量对象(variable object).但是为什么js高级程序设计(第三版)上会说: "在web浏览器中, 全局执行环境被认为是window对象" 全局执行环境不是一个抽象概念吗, 为什么又会"被认为是window对象"呢? 一个 抽象概念 怎么成了一个 具体的window对象 呢? 它这句话的意思是不是在说:"与全局执行环境相关联的变量对象是window对象" ? 对象 是 对象. 这样好像就能理解了还有就是js高级程序设计(第三版)还说:"this引用的是函数据以执行的环境对象" 这个"环境对象"又是个什么概念, 也是指与函数的执行环境相关联的那个变量对象吗?4 函数中的[[scope]]属性又该怎么理解5 如果可以的话也请讲讲eval函数形成的执行环境6 这些和所谓的词法作用域有关系吗?

天下大同同

js高程原话(第四章小结):所有变量(包括基本类型和引用类型)都存在于一个执行环境(也称为作用域)当中所以执行环境就是作用域

动漫人物

我是这么理解的:一个函数,一个作用域。如果不属于任何一个函数的,则为全局作用域。上下文环境,就是执行时的环境,也就是一条语句,或者一条命令,或者一个函数的所有父级作用域。也就是说,先找本级的作用域,然后找上级作用域,在找上上级作用域。。。一次类推。所以这样一个作用域集合,就是完整的上下文作用域,也就是所谓的执行环境
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript