深入理解JavaScript之执行上下文和执行栈

本文深入探讨JavaScript的执行上下文和执行栈。介绍了执行上下文的三种类型:全局执行上下文、函数执行上下文,以及创建和执行阶段。讲解了执行栈的工作原理,如何根据函数调用创建新的执行上下文并进行执行。此外,还涉及词法环境、变量环境和this的绑定规则。
摘要由CSDN通过智能技术生成

都说想成为出色的JavaScript 开发者,就要深入学习 JavaScript 程序内部的执行机制,最近学了一遍JS的执行上下文和执行栈,以此作总结。

首先先来了解几个专业概念

  • EC:函数执行环境(或执行上下文),Execution Context

  • ECS:执行环境栈,Execution Context Stack

  • VO:变量对象,Variable Object

  • AO:活动对象,Active Object

  • scope chain:作用域链

什么是执行上下文

每次当控制器转到ECMAScript可执行代码的时候,它都是在执行上下文中运行,即是指当前执行环境中的变量、函数声明,参数,作用域链,this等信息。

组成代码示例

const ExecutionContextObj = {
   
    VO: window,     // 变量对象
    ScopeChain: {
   }, // 作用域链
    this: window
};

执行上下文的类型

JavaScript 中有三种执行上下文类型。

  1. 全局执行上下文—— 这是默认上下文,浏览器中的全局对象就是window对象,任何不在函数内部的代码都在全局上下文中,this指向这个全局对象。

  2. 函数执行上下文 —— 当函数被调用时创建,会为该函数创建一个新的执行上下文&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值