js代码的运行环境
- 浏览器 内核(引擎)
- node
- webview(hybrid,嵌入到手机app里面,在app里面运行)
- …
下面通过几个例子理解不同数据类型的堆栈内存处理
js如何运行(示例1)
var a = 12;
var b = a;
b = 13;
console.log(a);
浏览器能够运行js代码,是因为浏览器会在计算机内存中分配出一块内存,用来供代码执行,这块内存叫栈内存,也叫Stack,或者ECStack(Execution Context Stack)执行环境栈。
为了区分是哪个区域(全局或者函数等)下的代码执行,会产生一个执行上下文(EC : Execution Context)。所谓执行上下文,其实是一个抽象的概念,简单来理解就是代码执行区域的划分。
在全局环境下会产生 EC(G) :Execution Context (golbal) 全局执行上下文,其中VO(G)全局变量对象(Varibale Object)存储全局执行上下文声明的变量,然后进入栈内存执行。
声明变量的步骤
接着开始执行,先声明变量,声明变量有三步
var [变量] = [值]
- 先创建值(执行等号右边)基本数据类型是直接存储在栈内存当中引用类型的值,都是开辟一个单独的内存空间(堆内存Heap)存储信息
- 声明变量 declare存放到当前上下