1、浏览器底层机制|1、浏览器底层机制 - 堆栈内存和ECStack/EC/GO/VO等 ------ 2020-12-15
JS代码之所以能够在浏览器中运行,是因为浏览器给JS执行提供了环境 => 栈内存(Stack)
1、ECStack(Execution Context Stack)执行环境栈:浏览器会在执行JS代码时,会在计算机
内存中分配出一块内存(栈内存),专门用来执行JS代码,这个栈内存就叫做ECStack => 执行环境栈
注:每打开一个网页都会形成一个执行环境栈
2、GO(Global Object)全局对象:浏览器会把一些内置的属性和方法放到一个单独的内存中 =>
堆内存(Heap),这个堆内存就是全局对象,并且浏览器会让window指向这个全局对象
3、EC(Execution Context)执行上下文:代码执行时所处的环境
- 全局执行上下文 EC(G)
- 函数中的代码都会在一个单独的私有的执行上下文中处理
- ES6中的块级执行上下文
【1、浏览器底层机制|1、浏览器底层机制 - 堆栈内存和ECStack/EC/GO/VO等 ------ 2020-12-15】5、VO(Variable Object)变量对象:在当前上下文中,用来存放创建的变量和值的地方,
每一个执行上下文中都会有一个自己的变量对象
6、AO(Activation Object)活动变量对象:函数私有上下文中用来存放创建的变量和值
的地方,AO是VO的一个分支,也属于VO
7、VO(G)全局变量对象:全局上下文中用来存放变量的地方;
8、注意:变量对象是在执行上下文(栈内存)中临时开辟的一块内存,和堆内存很像,
但是严谨点说并不是堆内存;
文章图片
浏览器底层机制 - 堆栈内存(2).png
文章图片
浏览器底层机制-堆栈内存(1).png
推荐阅读
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- Shell-Bash变量与运算符
- 清明,是追思、是传承、是感恩。
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- 七老修复好敏感、角质层薄、红血丝
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 螃蟹和这些食物同吃,轻则腹泻、重则中毒!要小心哦~
- 八、「料理风云」