이벤트 루프
·
Frontend/Javascript Essentials
1. 이벤트 루프이벤트 루프(브라우저에 내장되어 있는 기능)는 자바스크립트의 비동기 처리 메커니즘을 관리하는 핵심 엔진으로,실행 컨텍스트가 담긴 콜 스택(Call Stack) 과, 나중에 실행될 (매크로) 태스크 큐(task Queue) 및 마이크로태스크 큐(Microtask Queue) 를 조율하는 역할을 한다. 자바스크립트는 단일 스레드 언어이기 때문에, 한 번에 하나의 작업만 수행할 수 있는데, 실행할 함수가 생기면 콜 스택에 쌓이고, 스택의 맨 위에 있는 함수부터 순차적으로 실행되는 것이다. 이때 비동기 작업(예: setTimeout, fetch)은 바로 실행되지 않고, 백그라운드에서 완료된 후 해당 콜백이 큐(매크로 또는 마이크로 태스크큐)에 등록된다. 이벤트 루프는 콜 스택이 비어 있는지 계속..
실행 컨텍스트
·
Frontend/Javascript Essentials
먼저, 실행 컨텍스트를 바르게 이해하면더보기 자바스크립트가 스코프를 기반으로 식별자와 식별자에 바인딩된 값(식별자 바인딩)을 관리하는 방식호이스팅이 발생하는 이유클로저의 동작 방식태스크 큐와 함께 동작하는 이벤트 핸들러비동기 처리의 동작 방식을 이해할 수 있다. 1. 실행 컨텍스트란 ? 자바스크립트의 동작 원리를 담고 있는 핵심 개념으로서, 아래와 같은 특징을 갖는다. 실행 컨텍스트는자바스크립트 코드가 실행될 때, 해당 코드의 평가 및 실행에 필요한 환경 정보를 담는 객체이다.함수 호출 시마다 생성되며, 스코프 체인, 변수 환경, this 값 등을 포함한다.콜 스택에 쌓이며, 가장 위에 있는 컨텍스트만 실행된다. 2. 소스코드의 평가와 실행모든 소스코드는 실행에 앞서 평가 과정을 거치며 코드를 실행하기..