js中的堆栈内存及执行代码的步骤

224 阅读1分钟

名词解释:

(1)执行环境栈:ECStack(为代码执行提供了环境) (2)执行代码过程中为了区分是在哪个环境下执行,会产生执行上下文:

 + EC(G)全局执行上下文(只能在浏览器页面关闭的时候释放)

 + EC(X)某个函数的执行上下文

(3)VO(G)(variable object)全局变量对象

(4)GO(global object)全局对象(供浏览器JS调用的全局API) window提供的基本上是BOM模型的东西

1、 JS运行的环境:

 *   + 浏览器
 *   + webview  WebApp(Hybride混合APP) 
 *   + node.js
 *   + ...

2、浏览器能够运行JS代码,是因为提供了代码运行的环境:栈内存(Stack)

*   + 栈内存也是从计算机的内存分配出来的一块内存
*   + 执行环境栈 E(execution)C(context)Stack

3、执行代码的过程中,为了区分是在哪个环境下执行(全局/函数/块...),首先会产生一个执行上下文:EC

 *   + EC(G) 全局上下文,全局代码在这执行
 *   + EC(X) 某个函数的执行上下文

4、分析代码(基本类型值)

5、分析代码(引用类型)

6、题目

执行的顺序:

1、a.x = a = {n: 2}

  a.x = {n: 2}  
  ==> a = {n: 2}