美文网首页
js 执行上下文

js 执行上下文

作者: 原型设计 | 来源:发表于2019-02-22 00:29 被阅读0次

1. 执行上下文:

Execution Content:函数执行前的准备工作

2. JS执行环境

* 全局作用域
* 函数作用域
* eval作用域(不推荐使用eval,暂时忽略)
* 块级作用域 ES6新增

3. JS是如何管理执行上下文?

通过栈(先进后出,后进先出的一种数据结构)的存取方式管理,称为"执行栈"或"调用栈"

4. 函数调用栈

js执行 最先进入全局环境,所以处于"栈底的永远是全局环境的执行上下文",出于"栈顶的是当前正在执行函数的执行上下文",当函数调用完成后,它就会从栈顶被推出去(出栈,闭包会阻止)

注意: 全局环境只有一个,对应的全局执行上下文也只有一个,只有当页面被关闭之后它才会从执行栈出栈,否则一直存在于栈底

5. 执行上下文的生命周期

1.创建阶段: 函数被调用时,进入函数环境,创建执行上下文。
2.执行阶段: 函数中的代码执行时,执行上下文进入执行阶段


创建阶段:
        1. 创建变量对象 
            
            1.1 Arguments 对象(已赋值)
            1.2 函数声明 (已赋值)
            1.3 变量声明,函数表达式声明(未赋值)
            
        2. 确定this (调用者确定)
        
        3. 确定作用域(词法环境决定)
        
执行阶段:
        1. 变量对象赋值
        
            1.1 变量赋值
            1.2 函数表达式赋值
        
        2. 调用函数
        
        3. 顺序执行其他代码

6. 变量对象和活动对象的区别?:

当进入到一个执行上下文后,这个变量对象才会被激活,所以叫活动对象(AO),这时候活动对象上的各种属性才能被访问。

注意:创建阶段对函数声明做赋值,变量及函数表达式仅做声明,真正的赋值操作要等到行上下文代码执行阶段

7.执行上下文的数量限制(堆栈溢出)

原文链接

相关文章

  • 闭包和this

    执行上下文 执行上下文是什么 可以简单理解执行上下文是js代码执行的环境,当js执行一段可执行代码时,会创建对应的...

  • js 随笔

    js 执行机制: js执行上下文: 只有理解了js 执行上下文才能更好的理解 js变量提升以及 作用域和闭包 所谓...

  • JS中的执行上下文

    执行上下文 1. 定义 执行上下文就是js代码被解析和执行时所在环境的抽象概念,js的所有代码都是在执行上下文中运...

  • 函数的底层处理机制

    js上下文分类 js上下文(哪一个区域下执行)分类: 1.全局上下文EC(G) 2.函数执行形成...

  • 执行上下文(个人笔记)

    本文参考:javaScript执行上下文和执行上下文栈一篇文章看懂JS执行上下文什么是执行上下文?什么是调用栈? ...

  • 我的JS笔记 -- 执行上下文

    执行上下文,就是Js执行的时候的一个运行环境/作用域(scope)。执行上下文决定了Js执行过程中可以获取哪些变量...

  • javascript-执行上下文(执行上下文环境)

    执行上下文: 当出现js代码时,就出现了执行上下文,或叫做执行上下文环境。一般来说,执行上下文完成以下工作: 1....

  • JS对象模型 - 执行模型

    对象 js的对象模型,执行上下文

  • JS-变量提升/函数提升

    首先了解执行上下文(EC)【你不知道的JavaScript】(三)执行上下文及其生命周期JS中的执行上下文(Exe...

  • JS Context

    js的执行上下文 在js中,执行上下文保存着函数执行所需的重要信息,其中包括了三个属性: 变量对象作用域链this...

网友评论

      本文标题:js 执行上下文

      本文链接:https://www.haomeiwen.com/subject/ujojyqtx.html