亲宝软件园·资讯

展开

JavaScript LHS和RHS查询 快速理解 JavaScript 中的 LHS 和 RHS 查询的用法

码农技术宅 人气:0
想了解快速理解 JavaScript 中的 LHS 和 RHS 查询的用法的相关内容吗,码农技术宅在本文为您仔细讲解JavaScript LHS和RHS查询的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:JavaScript,LHS和RHS查询,JavaScript,LHS,RHS,下面大家一起来学习吧。

JavaScript 程序中的一段源代码在执行之前会经历三个步骤,统称为 编译

先看原书对一个赋值操作的拆解说明:
变量的赋值操作会执行两个动作,首先编译器会在当前作用域中声明一个变量(如果之前没有声明过),然后在运行时引擎会在作用域中查找该变量,如果能够找到就会对它赋值。 --- 《你不知道的JavaScript(上卷)》 P7

而要讲的 LHS 和 RHS 就是上面说的对变量的两种查找操作,查找的过程是由作用域(词法作用域)进行协助,在编译的第二步中执行。

LHS 和 RHS

先看个例子一

console.log(a);

这里对 a 是一个 RHS 引用,因为 a 并没有赋予任何值,目的是为了取到 a 的值并打印出来。

a = 2;

这里对 a 是一个 LHS 引用,因为实际上我们不关心当前的值是什么,只是想要把 a 赋值为 2。

再看例子二

function foo(a) {
  console.log(a); // 2
}
foo(2);

小测验

function foo(a) {
  var b = a;
  return a + b;
}
var c = foo(2);

试试找出其中的3处 LHS 查询,4处 RHS 查询

答案:

LHS 查询:

c = ..;
a = 2(隐式变量分配)
b = ..

RHS 查询

foo(2..
= a;
a ..
.. b

小结

参考原书中文版P12,英文版见 github

加载全部内容

相关教程
猜你喜欢
用户评论