最近在重學前端,遇到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;