JS 中执行上下文的类型有哪些?

回答·19
最热
最新
  • 1,全局执行上下文:当JavaScript代码在全局作用域中执行时创建的执行上下文。在浏览器环境中,全局执行上下文通常与window对象相关联。全局执行上下文在程序开始执行时创建,并且在程序的生命周期内始终存在。 2,函数执行上下文:每当一个函数被调用时,JavaScript会为其创建一个新的函数执行上下文。函数执行上下文定义了函数执行时的环境,包括函数的参数、局部变量、this的值以及函数的词法环境(lexical environment)。函数执行上下文在函数被调用时创建,并在函数执行完毕后销毁。 3,模块执行上下文:在ES6及以后的版本中,引入了模块系统。当导入或执行一个模块时,JavaScript会为该模块创建一个模块执行上下文。模块执行上下文类似于函数执行上下文,但它与模块作用域相关联,并且包含了模块的导出和导入。 这些执行上下文在JavaScript引擎的执行上下文栈(Execution Context Stack)中进行管理。当JavaScript代码执行时,只有一个执行上下文处于活动状态,它位于执行上下文栈的顶部。当函数被调用或模块被执行时,新的执行上下文会被推入栈中,并在执行完毕后从栈中弹出。 eval()函数虽然在早期版本的JavaScript中创建了一个特殊的Eval函数执行上下文,但由于其安全性和性能问题,现在通常不建议使用eval()函数。因此,在现代JavaScript开发中,执行上下文通常只包括全局执行上下文、函数执行上下文和模块执行上下文。
  • 分为全局,函数,eval执行上下文
  • 上下文类型?
  • 简单回答 第一种,global object。全局对象 第二种,variable object。变量对象 第三种,active object。活动对象 --- 引申问题:执行上下文及其生命周期
  • (1)全局执行上下文:这是默认的,最基础执行上下文。 不在函数内部的代码都位于全局执行上下文中 创建一个全局对象,其实就是我们的windown对象 将this指针指向这个全局对象。 (2)函数执行上下文:每次函数被调用的时候,就会创建一个新的执行上下文。 每个函数都有自己的执行上下文 一个程序中可以存在任意数量的函数执行上下文 每一个函数执行上下文被创建,它都会按照特定的顺序执行一系列的步骤 (3)eval函数执行上下文:运行在eval函数中的带吧也获得自己的执行上下文
  • object: window,使用call方法指定的对象 undefined:某些场景没有执行上下文
  • 全局执行 函数执行 Eval函数执行
  • if语句 局部变量和全局变量 function函数内部
  • (1)全局执行上下文:这是默认的,最基础执行上下文。 不在函数内部的代码都位于全局执行上下文中 创建一个全局对象,其实就是我们的windown对象 将this指针指向这个全局对象。 (2)函数执行上下文:每次函数被调用的时候,就会创建一个新的执行上下文。 每个函数都有自己的执行上下文 一个程序中可以存在任意数量的函数执行上下文 每一个函数执行上下文被创建,它都会按照特定的顺序执行一系列的步骤 (3)eval函数执行上下文:运行在eval函数中的带吧也获得自己的执行上下文
  • 1、全局环境:JavaScript代码运行起来会首先进入该环境 2、函数环境:当函数被调用执行时,会进入当前函数中执行代码 3、eval(不建议使用,可忽略)