-
6. 실행 컨텍스트(스코프, 변수, 객체, 호이스팅), 콜 스택JavaScript/3주차-데이터타입, 실행컨텍스트, this 2023. 5. 25. 17:41
실행컨텍스트 : 실행할 코드에 제공할 환경정보를 모아놓은 객체
실행컨텍스트의 역할 3가지
1. 호이스팅 (hoisting) : 선언된 변수를 위로 끌어올림
2. 외부 환경 정보 구성
3. this 값 설정
콜 스택
스택(Stack)과 항상 비교되는 것은 큐(Queue)
Stack : Last In, First Out = LIFO (마지막에 들어온게 처음으로 나간다.)
Queue: First In, First Out = FIFO (처음으로 들어온게 처음으로 나간다)
콜 스택에서는 스택(Stack) 방식을 따른다.
실행 컨텍스트란 실행할 코드에 제공할 환경 정보들을 모아놓은 객체. 그 객체. 즉, 동일 환경에 있는 코드를 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고 이것을 위에서 설명한 ‘스택’의 한 종류인 콜스택에 쌓아 올린다. 가장 위에 쌓여있는 컨텍스트와 관련된 코드를 실행하는 방법으로 코드의 환경 및 순서를 보장할 수 있다.
// ---- 1번 var a = 1; function outer() { function inner() { console.log(a); //undefined var a = 3; } inner(); // ---- 2번 console.log(a); } outer(); // ---- 3번 console.log(a);
코드실행 순서
맨아래에서 두번째 줄 outer();에서 가장 먼저 실행 → function outer( ) 실행 → 밑에서 4번쨰 줄 inner(); 에서 실행 → function inner() 실행 → console 실행
코드실행 → 전역(in) → 전역(중단) + outer(in) → outer(중단) + inner(in) → inner(out) + outer(재개) → outer(out) + 전역(재개) → 전역(out) → 코드종료
실행 컨텍스트가 생성되는 (활성화되는) 시점이 콜 스택의 맨 위에 쌓이는 (노출되는) 순간을 의미하며, 곧, 현재 실행할 코드에 해당 실행 컨텍스트가 관여하게 되는 시점을 의미한다.
'JavaScript > 3주차-데이터타입, 실행컨텍스트, this' 카테고리의 다른 글
8.Outer Environment Reference (3주차 -9) (0) 2023.05.26 7. Record와 호이스팅 (0) 2023.05.25 5. null과 undefined (0) 2023.05.25 4. 불변 객체 (깊은 복사 얕은 복사) (0) 2023.05.25 3. 변수 선언과 데이터 할당 (참조형 데이터) (0) 2023.05.25