美文网首页
1、浏览器底层机制 - 堆栈内存和ECStack/EC/GO/V

1、浏览器底层机制 - 堆栈内存和ECStack/EC/GO/V

作者: 自己写了自己看 | 来源:发表于2020-12-20 20:15 被阅读0次

JS代码之所以能够在浏览器中运行,是因为浏览器给JS执行提供了环境 => 栈内存(Stack)

1、ECStack(Execution Context Stack)执行环境栈:浏览器会在执行JS代码时,会在计算机
内存中分配出一块内存(栈内存),专门用来执行JS代码,这个栈内存就叫做ECStack => 执行环境栈
注:每打开一个网页都会形成一个执行环境栈

2、GO(Global Object)全局对象:浏览器会把一些内置的属性和方法放到一个单独的内存中 =>
堆内存(Heap),这个堆内存就是全局对象,并且浏览器会让window指向这个全局对象

3、EC(Execution Context)执行上下文:代码执行时所处的环境

  • 全局执行上下文 EC(G)
  • 函数中的代码都会在一个单独的私有的执行上下文中处理
  • ES6中的块级执行上下文

5、VO(Variable Object)变量对象:在当前上下文中,用来存放创建的变量和值的地方,
每一个执行上下文中都会有一个自己的变量对象

6、AO(Activation Object)活动变量对象:函数私有上下文中用来存放创建的变量和值
的地方,AO是VO的一个分支,也属于VO

7、VO(G)全局变量对象:全局上下文中用来存放变量的地方;

8、注意:变量对象是在执行上下文(栈内存)中临时开辟的一块内存,和堆内存很像,
但是严谨点说并不是堆内存;

浏览器底层机制 - 堆栈内存(2).png 浏览器底层机制-堆栈内存(1).png

相关文章

  • 1、浏览器底层机制 - 堆栈内存和ECStack/EC/GO/V

    JS代码之所以能够在浏览器中运行,是因为浏览器给JS执行提供了环境 => 栈内存(Stack) 1、ECStack...

  • js - 09 JS数据类型的区别

    堆栈底层机制 思考: 浏览器执行代码 步骤 从电脑内存中分配出一块内存,用来执行代码,称:栈内存(stack) 分...

  • 闭包

    定义 子函数可以访问到其他函数作用域中的数据,称之为闭包 堆栈内存 1、ECStack: Execution Co...

  • go内存管理

    1. Go 内存的划分 强烈推荐参考链接 在讲Go的堆栈之前,先温习一下堆栈基础知识。 什么是堆栈?在计算机中堆栈...

  • Go 语言内存管理(二):Go 内存管理

    介绍 了解操作系统对内存的管理机制后,现在可以去看下 Go 语言是如何利用底层的这些特性来优化内存的。Go 的内存...

  • JS 堆栈内存

    堆栈内存的作用 JS 中的内存堆内存和栈内存,所有堆栈内存的处理,浏览器会自行在内部执行 栈内存: 提供一个供 J...

  • Go 堆栈的理解

    在讲Go的堆栈之前,先温习一下堆栈基础知识。 什么是堆栈?在计算机中堆栈的概念分为:数据结构的堆栈和内存分配中堆栈...

  • 前端线路图

    1 堆栈内存以及闭包作用域 1 js中的基本数据类型以及其区别 (8种) 2 js堆栈内存的运行机制 3 变量提升...

  • Js/1 堆栈内存/变量提升和闭包

    1# Js数据类型渲染机制和堆栈内存 Js 文件的放置位置 head 头部 body 底部(推荐) Js 的 ...

  • 堆栈内存

    浏览器打开一个页面,首先会从计算机的虚拟内存中分配两块内存出来 栈内存Stack[ECStack] 执行上下文栈+...

网友评论

      本文标题:1、浏览器底层机制 - 堆栈内存和ECStack/EC/GO/V

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