자바스크립트 코드는 어떻게 실행되나요?

앞서 언급했듯이 자바스크립트 코드는 두 단계로 실행되는데 첫 번째는 메모리 할당 단계이고 두 번째는 코드 실행 단계입니다.

그래서 우리는 두 단계를 단계별로 살펴볼 것입니다. 예를 들어 보겠습니다.

function incre(k){
  int ans=k+1;
  return ans;
}
var i=0;

var first=incre(2);
var second=incre(i);


🔴 메모리 할당



이 단계에서 코드는 한 줄씩 파싱되어 메모리를 할당합니다. 첫 번째 줄에서 function incre가 발생하면 전체 함수 스니펫이 메모리에 저장됩니다. 다음 var iundefined 값으로 저장됩니다. firstsecond 모두 동일하게 발생합니다.

이 작업이 완료되면 실행의 다음 부분이 시작됩니다.


🟢 코드 실행



프로그램이 첫 번째 줄부터 실행됩니다. 위의 예에서와 같이 함수 정의에서 앞으로 이동하여 실행 가능한 코드로 이동합니다. var i 를 찾자마자 표시된 대로 값을 0으로 변경합니다.

다음으로 함수 호출이 있는 var first로 이동합니다. 이것은 일이 흥미로워지는 곳입니다.

Before we understand this, You should know that this whole box, whatever is happening is happening in Global Execution context. A function makes it's own execution context whenever it is invoked.
All these contexts are saved in a stack.



따라서 func incre로 이동하여 유사한 방식으로 한 줄씩 실행합니다(두 단계). 먼저 메모리가 할당된 다음 코드가 실행됩니다. first 에 의한 함수 호출에서 먼저 메모리와 값undefined을 할당합니다. 그런 다음 실행되고 값k+1이 입력됩니다. return 문을 만나자마자 이 호출에 대한 실행 컨텍스트가 스택에서 제거됩니다.
second 에서 호출 2로 동일한 작업을 수행합니다.


마지막에는 전역 실행 컨텍스트도 팝되므로 js 코드의 전체 실행을 나타냅니다.

좋은 웹페이지 즐겨찾기