数据类型区别和堆栈内存处理

浏览器能够运行 JS 代码:它会在计算机的内存中分配出一块内存,用来供代码执行的=>栈内存 Stack  ECStack(执行环境栈)。

为了区分是哪个区域(全局或函数等)的代码执行,会产生一个“执行上下文”EC=>EC(G) Execution Context(global) 全局执行上下文。

VO(G) 全局变量对象:Variable Object 存储当前上下文声明的变量。

创建基本类型的步骤是

var[变量]=[值]:

第一步:先创建值

              基本类型值直接存储在内存中

              引用类型值,都是开辟一个单独的内存空间(堆聂村Heap),用来存储信息的

第二步:声明变量 declare

              存放到当前上下文的变量对象中(VO/AO)

第三步:让变量和值关联到一起,也就是我们说的赋值操作,此操作叫做定义 defined    

var n:默认值 undefined

创建引用类型值的步骤是:

            在计算机内存中分配一个单独的内存出来=>堆内存(HEAP)

            有一个16进制的地址

            把对象中的键值分别存放到堆内存中

            把堆内存的地址放置到栈中,供变量调用

接下来通过几个例子来看下具体的底层逻辑:

你可能感兴趣的:(数据类型区别和堆栈内存处理)