면접 질문들을 검색하다보면 자바스크립트의 개념들과 관련하여 이런 질문들이 많이 보인다.
3개월 동안 구현만 주구장창하다보니 정작 중요한 이런 개념들을 제대로 짚고 갈 시간이 없었다. 어제는 디버거를 공부하면서 호출 스택과 스코프에 대해 배웠다면, 오늘은 자바스크립트의 동작 원리라고 말하는 **실행 컨텍스트(Execute Context)**를 배워보고자 한다.
❓ 코드를 통해 변수는 어떻게 바뀌는 걸까? 왜 바뀌는 걸까?
🙀 그러면, 지역 범위인 함수 안에서 선언한 변수는 어떻게 될까?
❗ A 함수에서 B 함수를 호출했을 때, B 함수는 A 함수의 변수를 받아올까?
이 내용을 이해하려면, 지난 시간에 공부했던 ‘범위(Scope)’를 되짚어볼 필요가 있다.
저번에 디버거를 통해 전역 범위(Global Scope)와 지역 범위(Local Scope)를 공부한 일이 있었다.
전역 스코프 (Global Scope)
- 전역에 선언되어 있기 때문에 어느 곳이든 이 변수에 접근할 수 있다.
지역 스코프 (Local Scope)
- 지정한 범위에서만 접근할 수 있어, 해당 범위를 벗어날 경우 접근할 수 없다.
자바스크립트는 어떤 변수를 읽으려고 할 때 이 범위(Scope)에서 변수를 찾으려고 한다. 아래의 코드를 보자.