Javascript(38)
-
실행컨텍스트
실행할 코드에 제공할 환경 정보들을 모아놓은 객체 순서 1. 호이스팅이 발생 ( 선언된 변수를 위로 끌어올린다, 함수는 함수 전체가 호이스팅된다 ) 2. 외부 환경정보를 구성한다. 3. this 값을 설정한다 - 실행 컨텍스트의 전역공간은 자동으로 컨텍스트로 구성이된다. 구성할때 생기는 것 - VariableEnvironment : 현재 컨텍스트 내의 식별자(변수)들에 대한 정보, 외부 환경 정보, 선언 시점의 LexicalEnvironment 의 스냅샷(변경사항을 반영하지않는다.) - LexicalEnvironment : 처음은 위와 같음, 변경사항이 실시간으로 반영된다. environmentRecord와 outerEnvironmentReference로 구성 되어 있고 environmentRecord ..
2023.04.08 -
이벤트루프
코드의 실행, 이벤트의 수집과 처리, 큐에 대기 중인 하위 작업을 처리하는 이벤트 루프에 기반하고 있다. 스택 - 함수의 호출들은 프레임 스택을 형성한다. - 호출할 때 함수의 인수와 지역변수를 포함하는 첫번째 프레임이 생성된다. - 인수와 지역변수는 스택 바깥에 저장되므로 바깥 함수가 반환한 후에도 계속 존재할 수 있다. 중첩 함수에서 지역 변수에 접근할 수 있는 이유가 이것이다. 힙 - 객체는 힙에 할당된다. 힙은 단순히 메모리의 큰 ( 대부분 구조화되지 않은 ) 영역을 지칭하는 용어이다. 큐 - 메시지 큐, 즉 처리할 메시지의 대기열을 사용한다. 각각의 메시지는 메시지를 처리하기 위한 함수가 연결되어 있다. - 이벤트 루프의 임의 시점에 런타임은 대기열에서 가장 오래된 메시지부터 큐에서 꺼내 처리한..
2023.04.08