[typescript] 실행 컨텍스트와 호이스팅의 개념을 이용하여 자바스크립트 엔진의 내부 동작을 설명해주세요.
자바스크립트는 실행 컨텍스트와 호이스팅을 이용하여 내부 동작을 처리합니다.
실행 컨텍스트
- 실행 컨텍스트란 코드가 실행되기 위한 환경을 나타냅니다. 함수가 호출될 때마다 새로운 실행 컨텍스트가 생성되고, 이 컨텍스트는 변수, 함수, 매개변수 등의 정보를 담고 있습니다.
- 실행 컨텍스트에는 VariableEnvironment (변수 환경), LexicalEnvironment (렉시컬 환경), ThisBinding (this 바인딩) 등의 정보가 포함되어 있습니다.
호이스팅
- 호이스팅이란 변수와 함수 선언이 컨텍스트로 이동되어 해당 컨텍스트의 최상단에 위치하는 것을 의미합니다.
- 모든 변수와 함수 선언은 호이스팅되지만, 할당 구문은 호이스팅되지 않습니다.
다음은 간단한 예시 코드입니다.
console.log(myVar); // 출력: undefined
var myVar = 5;
console.log(myVar); // 출력: 5
myFunction(); // 출력: "Hello, world!"
function myFunction() {
console.log("Hello, world!");
}
이 코드에서 myVar
와 myFunction
은 호이스팅되어 실행 컨텍스트의 최상단으로 이동합니다. 이렇게 하면 코드에서 변수 또는 함수를 선언하기 전에 참조할 수 있는 이점을 제공합니다.
이러한 실행 컨텍스트와 호이스팅의 동작을 이해하면 자바스크립트의 내부 동작을 더 잘 이해할 수 있습니다.
더 자세한 정보를 원하시면, 참고 문헌을 확인해주세요.