JavaScript 的执行环境

文章是本人大三期间的学习笔记,一些论断取自书籍和网上博客,碍于当时的技术水平有一些写得不够好的地方,可以在评论处理智讨论~

执行环境(execution context,有时也被叫做执行上下文)是 JavaScript 中最重要而且是最基本的一部分内容。在你搞清楚执行环境后,会对你弄清楚作用域链、变量提升、this这些核心概念起着决定性的作用。

希望你能在读完本文后,能够弄清楚解释器做了什么,为什么函数和变量能在声明前使用以及他们的值是何时被决定的。

执行环境(EC)

执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有一个与之关联的变量对象(variable object,一般简写为 VO,环境中定义的所有变量和函数都保存在这个对象中。虽然我们编写的代码无法访问这个对象,但解析器在处理数据时会在后台使用它。

——来自红宝书对执行环境的定义

在 JavaScript 中,可执行的 JavaScript 代码分为三种

  • Global Code(全局级别的代码)
  • JavaScript 代码开始运行的默认环境,即全局的、不在任何函数里面的代码
  • Function Code(函数级别的代码)
    • 代码进入一个JavaScript函数,运行函数体中的代码,即用户自定义函数中的函数体代码
  • Eval Code(Eval的代码)
    • eval 函数中动态执行的代码

跳过 Eval Code,只说全局执行环境和函数执行环境。

全局执行环境

全局执行环境是最外围的一个执行环境。在 Web 浏览器中,全局执行环境被认为是 window 对象,因此所有全局变量和函数都是作为window对象的属性和方法创建的。代码

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值