[JS] 함수의 호출 스택

세나정·2023년 6월 4일
0

함수의 스택

이런 코드가 주어졌을 때, 변수의 스코프와 실행의 순서에 대해서 당연히 알고 있어야함 그것이 바로 '인간 js 엔진'

내가 생각한 답
console기준
'a' -> 'b' -> 'c' -> 'c'

스택 예시

당연히 스택으로 생각한다면

나는 프링글스 통에 비유를 해주고 싶다.

아래서 부터 쌓인 후 위에서 부터 빠져나가는 (LIFO or FILO) 형식

큐 예시

선입선출의 예시 (FIFO)


그래서 조금 더 상세하게 위에 코드를 분석하자면,
스택에 쌓이는 순은

18번째 줄
-> console.log('a') -> 콘솔 제거 -> b -> console.log('b') -> 콘솔 제거 -> c -> console.log('c') -> 콘솔 제거 -> c 제거 -> b 제거 -> a 제거

19번째 줄
c -> console.log('c') -> 콘솔 제거 -> c 제거

코드에서 함수 선언부의 중괄호가 끝날 때 스택에서 지워진다고 생각하면 됨

개발자 도구에서 debugger를 넣으면 stack을 볼 수 있음

-> 스코프 체인도 볼 수 있음

이렇게 함수의 스택의 맨 아래 (마지막 순번)에 anonymous를 볼 수도 있는데 이거는 파일을 실행할 때 나오는 함수라고 생각하면 된다.

profile
압도적인 인풋을 넣는다면 불가능한 것은 없다. 🔥

0개의 댓글