[typescript] 실행 컨텍스트와 호이스팅의 개념을 간단한 예제를 통해 설명해주세요.
자바스크립트나 타입스크립트에서 코드가 실행되기 위해서는 실행 컨텍스트가 필요합니다. 실행 컨텍스트는 코드가 실행될 때 생성되는 환경을 말합니다. 이 환경은 변수, 함수, 객체, 스코프 등의 정보를 담고 있습니다.
실행 컨텍스트란?
실행 컨텍스트는 코드 블록이 실행되었을 때, 해당 코드 블록에 대한 환경 정보를 담고 있는 객체입니다. 각 코드 블록마다 실행 컨텍스트가 생성되며, 현재 실행 중인 코드의 환경을 나타냅니다.
호이스팅이란?
호이스팅은 변수 및 함수 선언을 해당 스코프의 최상단으로 끌어올리는 동작을 말합니다. 이는 코드의 실행 전에 자동으로 수행되며, 개발자가 직접 코드를 작성한 순서와는 다를 수 있습니다.
간단한 예제를 통해 실행 컨텍스트와 호이스팅을 설명해보겠습니다.
console.log(myVar); // undefined
var myVar = 10;
console.log(myVar); // 10
위 예제에서, myVar
변수의 선언은 런타임 이전에 호이스팅되며, 실제 할당은 호이스팅된 이후에 일어납니다. 따라서 첫 번째 console.log
에서 myVar
의 값은 undefined
이 됩니다.
결론
실행 컨텍스트와 호이스팅은 코드 실행 시 발생하는 중요한 동작입니다. 이를 이해하고 활용하면 코드의 동작을 명확히 이해하고 오류를 방지할 수 있습니다.
참고 자료:
- MDN Web Docs: Execution Context#execution_context
- MDN Web Docs: Hoisting