자바스크립트 동작원리

김영진·2021년 12월 10일
0

=> 결과

?
아니 위에서부터 차례대로 실행되야 하는거 아님?

아니라고 한다.

위의 이미지를 보자
브라우저에 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에 차례대로 들어가
실행된다

JavaScript 특징

  • 동기적 처리 방식 : 한번에 한줄을 순서대로 실행
  • But 가끔 비동기적 처리도 가능
  • 싱글 스레드 : 순차적 실행 / javascript
  • 멀티 스레드 : 병행 실행 ( 여러개를 동시에 )
  • But 현실에선 웹 브라우저나 Node.js와 같은 멀티 스레드 환경에
    임베디드 되어 실행된다.
  • 때문에 자바스크립트에서는 멀티스레드로 작업이 가능하지만, 싱글 스레드와 멀티 스레드의 타이밍이 존재한다

와 ! 오늘도 하나 알아갑니다 !

이미지 출처 : 유튜브 코딩애플 님

0개의 댓글

관련 채용 정보