JavaScript中的LHS和RHS查询

2019-02-28  本文已影响0人  萘小蒽

举个栗子,var a = 2; JavaScript引擎会将它分为几步完成呢?
  答案是两步,JavaScript 会将其看成两句声明:var a;a = 2;
第一个定义声明在编译阶段进行。
第二个赋值声明会被留在原地等待执行阶段。

下面是原书对这句声明的拆解分析:

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

LHSRHS就是上面说的对变量的两种查找操作,查找的过程是由作用域(词法作用域)进行协助,在编译的第二步中执行。
LHS(Left-hand Side)引用和RHS(Right-hand Side)引用。通常是指等号(赋值运算)的左右边的引用。
我们来看下面这句代码:

console.log(a);

这里对a的引用是一个RHS引用,因为这里a并没有赋予任何值,我们只是想查找并取得a的值,然后将它打印出来。

a = 2;

这里对a的引用是一个LHS引用,因为我们并不关心当前的值是什么,只是想要为赋值操作找到目标

上一篇 下一篇

猜你喜欢

热点阅读