[자바스크립트 정리] 실행 컨텍스트2. scope, scope chain
scope
- 스코프란 변수가 인식되는 범위 혹은 유효성을 가지는 범위.
- 스코프는 오직 함수에 의해서만 생성될 수 있다.(전역스코프 제외)
scope chain
-
스코프 체인이란 스코프를 안에서부터 바깥으로 검색해나가는 것이다.
-
outerEnvironmentReference = 실행 컨텍스트가 활성화 될 때 lexical environment가 수집하는 값 중 하나로 현재 호출된 함수가 '선언될 때'의 상위 lexical environment를 참조.
-예시let a = funciton () { let b = function () { let c = function () { ... } } } ``` - c의 outerEnvironment는 b의 lexical environment를 참조하고 b의 o.e는 a의 l.e를 참조한다. - 전역 -> a -> b-> c 순으로 스코프 체인이 생성되고 작은 규모의 함수에서 접근할 수 있는 변수가 가장 많다. - 다른 스코프에 같은 변수가 있을 경우 함수가 실행되면서 가장 먼저 발견하는 변수에만 접근 가능하다.(변수 은닉화) ### 전역변수, 지역변수
-
전역변수 = 전역공간에서 선언한 변수
-
지역변수 = 함수 내부에서 선언한 변수
cf) 전역변수들은 여러 함수에 영향을 줄 수 있기 때문에 코드의 안정성을 위해서 전역 변수 사용은 지양하는게 좋다.
정리
- 어떤 함수가 호출 되면 해당 함수의 실행 컨텍스트가 활성화되고 해당 함수를 실행하기 위한 정보들이 모아진다. 이 정보들은 variable environment(변수 초기 정보), lexical environment(변수 초기부터 변동하는 과정의 정보), thisbinding(this에 관한 정보)세가지가 있고 l.e는 다시 outerEnvironmentReference, environmentRecord(매개변수명, 변수명, 함수명 등) 둘로 나눌 수 있고 o.e는 l.e를 참조한다.
- outer environment reference는 해당 함수가 선언된 위치의 l.e를 참조하고 어떤 변수에 접근할 때 먼저 현재 함수 스코프내의 l.e를 검색, 찾는 변수가 없으면 o.e에 있는 l.e를 검색한다. --> 스코프 체인
Author And Source
이 문제에 관하여([자바스크립트 정리] 실행 컨텍스트2. scope, scope chain), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kangko05/자바스크립트-정리-실행-컨텍스트2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)