Javascript执行var = 2编译器处理流程

       1. 遇到 var a, 编译器会询问作用域是否已经有一个该名称的变量存在于同一个作用域的集合中。 如果是, 编译器会忽略该声明, 继续进行编译; 否则它会要求作用域在当前作
用域的集合中声明一个新的变量, 并命名为 a

       2. 接下来编译器会为引擎生成运行时所需的代码, 这些代码被用来处理 a = 2 这个赋值操作。 引擎运行时会首先询问作用域, 在当前的作用域集合中是否存在一个叫作 
变量。 如果是, 引擎就会使用这个变量; 如果否, 引擎会继续查找该变量
       

  如果引擎最终找到了 a 变量, 就会将 2 赋值给它。 否则引擎就会举手示意并抛出一个异常!

  变量的赋值操作会执行两个动作:首先,编译器会在当前作用域中声明一个变量(如果之前没有声明过),然后在运行时引擎会在作用域中查询该变量,如果能找到就会对它进赋值。

 

posted on 2019-02-15 14:14  时光游弋  阅读(214)  评论(0编辑  收藏  举报