为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

倚天杖 2019-06-02 20:03:06
不是一个东西,一般来说,js执行环境就是浏览器。作用域应该说的是js变量、对象、函数的作用域,主要是变量的生存周期,就是说再执行哪些代码之后,这个变量就没有用了。
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

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 这些和所谓的词法作用域有关系吗?


查看完整回答
1 反对 回复 2019-06-02
?
天下大同同

TA贡献1条经验 获得超0个赞

js高程原话(第四章小结):

所有变量(包括基本类型和引用类型)都存在于一个执行环境(也称为作用域)当中

所以执行环境就是作用域

查看完整回答
反对 回复 2019-08-02
  • 慕莱坞7923276
    慕莱坞7923276
    大佬看书看的真仔细啊,给你点个赞
  • 天下大同同
    天下大同同
    如果按照英文描述,执行上下文是 context 而 作用域是 scope ,其实两个东西不是一回事,scope一般情况下是指词法作用域。
  • 天下大同同
    天下大同同
    如果按照英文描述,执行上下文是 context 而 作用域是 scope ,其实两个东西不是一回事,scope一般情况下是指词法作用域。
点击展开后面1
?
动漫人物

TA贡献1815条经验 获得超10个赞

我是这么理解的:
一个函数,一个作用域。如果不属于任何一个函数的,则为全局作用域。
上下文环境,就是执行时的环境,也就是一条语句,或者一条命令,或者一个函数的所有父级作用域。
也就是说,先找本级的作用域,然后找上级作用域,在找上上级作用域。。。一次类推。所以这样一个作用域集合,就是完整的上下文作用域,也就是所谓的执行环境

查看完整回答
反对 回复 2019-06-02
  • 3 回答
  • 0 关注
  • 1095 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号