실행 컨텍스트

Andy·2023년 8월 12일
0

자바스크립트

목록 보기
2/39
post-thumbnail

실행 컨텍스트: 실행할 코드에 제공할 환경 정보들을 모아놓은 객체입니다.

호이스팅: 끌어올린다는 의미의 hoist에 ing를 붙여 만든 동명사로, 변수 정보를 수집하는 과정을 더욱 이해하기 쉬운 방법으로 대체한 가상의 개념입니다.

인자들과 함께 함수를 호출할 경우 매개변수를 변수 선언 및 할당한것과 같다고 간주한 상태로 코드를 변환합니다.
그 후 변수를 호이스팅할때는 변수명만 끌어올리고 할당된 값은 원래 자리에 남겨둡니다.
함수를 호이스팅할때는 함수 전체를 끌어올립니다.

함수 선언문 vs 함수 표현식

함수 선언문: function 정의부만 존재하고 별도의 할당 명령이 없는 것을 의미
함수 표현식: 정의한 function을 별도의 변수에 할당하는것을 말합니다.
함수 선언문은 전체를 호이스팅 합니다.
함수 표현식은 변수 선언부만 호이스팅 합니다.

스코프:변수의 유효범위

스코프체인: 식별자의 유효범위를 안에서부터 바깥으로 차례로 검색해나가는 것, 컨텍스트가 많아지면 많아질수록 스코프 체인을 타고 접근 가능한 변수의 수는 늘어납니다.

변수 은닉화: 함수 내부에서 선언한 변수 가 있을시 전역 공간에서 선언한 동일한 이름의 변수에는 접근할수 없는 것

variable environment vs lexical environment

lexical environment는 함수 실행 도중에 변경되는 사항이 즉시 반영는 반면 variable environment는 초기 상태를 유지합니다.
lexical environment: 매개변수명, 변수의 식별자, 선언한 함수의 함수명 등을 수집하는 environmentRecord 와 직전 컨텍스트의 lexicalEnvironment 정보를 참조하고 있는 outerEnvironmentReference로 구성돼 있음

profile
열정으로 가득 찬 개발자 꿈나무 입니다

0개의 댓글