실행할 코드에 필요한 환경 정보를 모아놓은 객체로,
함수가 실행될 때 생성되어 스택에 쌓이고, 가장 위의 있는 컨텍스트와 관련있는 코드를 실행한다
생성 과정
함수 실행 → 실행 컨텍스트 활성화(객체 생성) → 호이스팅(내부 환경정보 구성) → 외부 환경정보 구성 → this바인딩
구조
-VariableEnvironment
ㄴ environmentRecode(스냅샷)
ㄴ outerEnvironmentReference(스냅샷)
-LexicalEnvironment
ㄴ environmentRecode
ㄴ outerEnvironmentReference
-ThisBinding
호이스팅: 실행 전 코드를 한번 쭉 훑으면서 식별자를 LexicalEnvironment에 순서대로 수집하는 것
스코프: 식별자에 대한 유효범위로, 함수 실행 시 그 함수의 컨텍스트에 담긴 정보만 사용할 수 있다
스코프 체인: 식별자의 유효범위를 안에서부터 바깥으로 차례로 검색해나가는 것
기본적인 split(), replace(), join()함수에 대한 이해가 부족해 알고리즘 문제를 풀지 못했다
내가 간과한 특징들
replace('바뀔문자', '바꿀문자')
split(구분자)
join(매개요소)
slice(begin,end)