=> 결과
?
아니 위에서부터 차례대로 실행되야 하는거 아님?
아니라고 한다.
위의 이미지를 보자
브라우저에 Heap, Stack, 대기실, Queue 라는 공간이 있다고 하고
Heap에는 변수에 저장된 값들
Stack 에는
console.log(1+1)
setTimeout(()=> 2+2, 0)
console.log(2+2)
ajax(뭐시기...코드..)
Stack에서는
setTimeout, ajax, eventListener과 같은 처리하는데 어느정도 시간이 걸리는 함수들은
미리 대기실로 옮겨놓고
Stack이 모두 비어있을 때 대기실에 있는 함수들이 Queue를 거치고
함수 한개씩 Stack으로 보내 실행시킨다
따라서 위 예제에서
console.log(1+1)
console.log(2+2)
이 실행된 후
setTimeout(()=> 2+2, 0)
ajax(뭐시기...코드..)
이 두가지의 함수들은 대기실->Queue를 거쳐 Stack에 차례대로 들어가
실행된다
이미지 출처 : 유튜브 코딩애플 님