JS: LHS(Left-hand Search) vs RHS(Right-hand Search)

Erica Gong·2022년 7월 26일
0

JS

목록 보기
3/4
post-thumbnail

들어가며

이 포스팅에서는 LHS와 RHS의 어원과 방향을 나누는 기준이 무엇인지 소개하여, LHS와 RHS의 차이를 명확히 설명하고자 한다.

LHS vs RHS

LHS와 RHS는 모두 JS 엔진이 변수를 찾기 위해 수행하는 검색 과정을 의미한다.

LHS는 말 그대로 left-hand side 검색을 RHS는 right-hand side 검색을 지칭한다.
left, right를 나누는 기준은 바로 대입 연산(=)의 방향이다.

LHS 검색은 변수가 대입 연산자의 왼쪽에 있을 때 수행하고, RHS 연산은 변수가 대입 연산자의 왼쪽이 아닌 쪽에 있는 경우에 수행한다. LHS 검색은 var a = 2; 와 같은 형태로 변수에 값을 할당해야 하므로, 변수가 저장된 메모리 공간 주소값을 찾는다. 반면 RHS 검색은 특정 변수의 값을 찾는 것과 다름 없다.

1: function foo(a) {	// LHS
2: 	console.log(a); // RHS
3: }
4: 
5: let a = 2;			// LHS
6: foo(a);  			// RHS

위 코드의 line5와 line1은 LHS 연산이다. line5의 경우 = 할당연산자가 명확해서 LHS임을 파악하기 쉽다. line1이 LHS 연산인 이유는 내부적으로 매개 변수에 a라는 값을 할당하기 때문이다.

위 코드의 line2, line6은 RHS 연산이다. 대입 연산자를 사용하지 않고 단순히 값을 참조하기 때문이다.

LHS(left-hand side) 검색: 변수가 대입 연산자(=)의 왼쪽에 있을 때 수행하는 검색으로 값을 넣을 변수 컨테이너를 찾는 행위를 지칭
RHS(right-hand side) 검색: 변수가 대입 연산자(=)의 왼쪽이 아닌 편에 있을 때 수행하는 검색으로 특정 변수의 값을 찾는 행위를 지칭

참고 자료

LHS vs RHS
LHS and RHS references in Javascript? Think like a compiler!

0개의 댓글