반응형
LHS, RHS
LHS(Left-Hand-Side)
- 검색은 변수가 대입 연산자의 왼쪽에 있을때 수행된다.
- 단순히 특정 변수의 값을 찾는다.
RHS(Right-Hand-Side)
- 검색은 변수가 대입 연산자의 오른쪽에 있을 때 수행된다.
- 값을 넣어야 하므로 변수 컨테이너 자체를 찾는다.
다음과 같이 console.log( a ); 라는 코드중 a에 대한 참조는 어떤 참조일까?
위 코드에서는 a라는 값에 아무것도 대입하지 않고 a의 값을 가져오기 때문에 RHS참조라고 한다.
그렇다면 위 a = 2; 라는 코드중 a에 대한 참조는 어떤 참조일까?
' = 2 '라는 대입 연산자를 할 대상을 찾고있기때문에 LHS참조라고 한다.
LHS와 RHS를 모두 참조하는 간단한 프로그램이다.
먼저 foo()라는 함수를 호출하면서 ' 2 '라는 인자값을 넘겨주는것을 볼수있는데
foo()함수의 값을 가져오는것이기 때문에 RHS검색이 이루어진다.
그렇다면 ' 2 '라는 인자값을 넣어준것은 어디로 갈까?
foo()에 ' 2 '라는 값을 넘겨줄때 'a = 2'라는 코드가 실행되게 되면서 a에 ' 2 '라는 숫자를 대입하는 연산이 일어나게된다.
여기서 2라는 숫자를 어디에 대입할지 찾기때문에 LHS검색이 이루어진다.
그리고 console.log()를 처리하기 위해서는 console이라는 객체에서 log이라는 함수가 있는지 RHS검색을 통해 확인한다.
또한 a의값을 RHS검색을 통해 가져온뒤 log()함수에 넣어준다.
이렇게 해서 총 3번의 RHS검색과 1번의 LHS검색이 이루어진것을 확인할 수 있다.
반응형
'Javascript > You Dont Know JS' 카테고리의 다른 글
컴파일레이션 (0) | 2022.05.30 |
---|