Notice
Recent Posts
Recent Comments
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

HYEWON JUNG의 개발일지

실행컨텍스트(VE, LE, record, hoisting 등) 본문

JavaScript

실행컨텍스트(VE, LE, record, hoisting 등)

혜won 2023. 10. 30. 18:01

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

=> 선언된 변수를 위로 끌어올리고 /hoisting

=> 외부환경정보를 구성하고 

=> this를 바인딩

 

콜스텍 = 실행콘텍스트가 담기는 장소 

=> 코드의 순서를 보장함

 

실행콘텍스트가 있는 장소를 대표적으로 스택과 큐로 나눌 수 있는데  스택은 Last in First out 컵 모양을 생각하면 되고 , 큐는  First in First out 위아래가 뚫린 원기둥이라고 생각하면된다.

 

VariableEnvironment

=> 현재 실행할 코드에 식별자 정보 record를 지님

=> outer를 지님

=> LexicalEnvironment의 snapshot

 

LexicalEnvironment

=> 현재 실행할 코드에 식별자 정보 record를 지님

=> outer를 지님

=> 실시간 반영

 

VE 와 LE는 완전히 같지만 진행상황에 따른 변경사항을 유지함과 유지 하지 않음 이 다르다.

 

Record = 식별자 정보 //식별자 정보를 컨텍스트에 기록이라 외우기

=> 컨텍스트 내부를 처음부터 끝까지 순서대로 훑어가며 수집. 

# 수집만 할 뿐 실행은 하지 않음.

 

record 는 호이스팅을 품고 있다.

 

호이스팅 = 가상개념

=> 식별자 정보와 함수를 끌어올림

# 모든 함수를 전부 끌어올리진 않는다. 

if(함수= 선언식){
	전부 호이스팅
} else if(함수=표현식){
	선언부만 호이스팅
}

하지만 선언식 함수를 사용할 경우 코드가 꼬일 확률이 높으니 함수를 작성할 때 표현식 함수를 주로 사용하기!