LHS和RHS理解
最近在重学前端,遇到LHS和RHS两个名词,这里记录下,方便深入理解两个概念
见名知意,“L”和“R”的含义,它们分别代表左侧和右侧。
这里举一个简单的例子
console.log(a)
在这段代码中,a就是进行RHS查询,因为我们并没有对a进行赋值操作,而是直接引用了a,我们需要查找并拿到a的值才能传递给console.log
如果a=2
,这里对 a 的引用则是 LHS 引用。
LHS 和 RHS 的含义是“赋值操作的左侧或右侧”并不一定意味着就是“= 赋值操作符的左侧或右侧”。说白了就是变量出现在复制操作的左边是进行LHS查询,出现在右边就是进行RHS查询。
再例如
function foo(a) {
var b = a;
return a + b;
}
var c = foo( 2 );
其中LHS查询有三处,RHS有四处。
分别是
- LHS
- c= ...
- a=2; 这一个LHS其实是一个隐式查询
- b=...
- RHS
- foo(2..
- = a;
- return a;
- return b;