学习笔记——js中执行上下文与执行栈

学习了解执行上下文对象及执行栈,更好地理解js中代码运行机制。

一、基本概念 

执行上下文对象(Execution Context Object)是在 JavaScript 引擎中创建并用于描述当前正在执行的代码环境的数据结构。每当一段 JavaScript 代码被执行时,都会创建一个新的执行上下文对象。

执行上下文分为以下三类:

二、执行上下问对象的组成

  • 变量环境(Variable Environment):用于存储变量和函数声明的上下文。它包括了当前作用域中声明的所有变量和函数,以及对外部作用域的引用。这个引用是单向的,这就是子作用域能访问父作用域,而父作用域不能访问子作用域的原因。
  • 词法环境(Lexical Environment):描述了当前执行代码所处的词法作用域,并通过一系列嵌套的词法环境连成一个作用域链,以便查找变量和函数。
  • this值:指向当前执行代码的上下文对象。
  • 执行上下文对象的创建始于一段代码块的开始,并在代码块执行完成后被销毁。在 JavaScript 中,全局执行上下文对象是最先被创建的,并且只有一个。在函数被调用时也会创建一个新的执行上下文对象。

三、结合代码理解执行上下文对象

    var scope = 'global'
       function checkScope() {
      // var scope = 'local'
      var value = 1
      var obj = {
        value: 10,
        fun: function() {
          console.log(this.value)
        }
      }

      console.log(obj.fun())
      console.log('checkScope:' + scope)
      console.log(this.scope)

      function execute() {
        console.log('excute:' + scope)
        console.log(this.scope)
      }

      execute()
    }

    checkScope()
    console.log('global:' + scope)
    console.log(this)

四、执行栈的使用过程

视频讲解icon-default.png?t=N3I4https://www.bilibili.com/video/BV1km4y127WB/?vd_source=be4efb0f2cfe5e83a1774731474196fd​​​​​​​

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一一GG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值