Synchronous (동기) : 정해진 순서에 맞게 코드가 순차적으로 실행하는 방식

Asynchronous (비동기) : 코드가 언제 실행되는지 예측할 수 없는 비동기적 방식

JavsScript is synchronous. (자바스크립트는 동기적이다.)

hoisting이 완료된 이후부터 코드가 작성한 순서에 맞춰서 동기적으로 실행된다.

 

hoisting : var(변수선언), function declaration(함수선언) 들이 자동적으로 제일 위로 올라가는 것 

[Test Case]

[Test 설명]

자바스크립트 엔진은 코드를 위에서부터 밑으로 실행합니다. 

브라우저 api는 무조건 브라우저에게 먼저 요청을 보낸다.

이런 경우 응답을 기다리지 않고 바로 다음 코드로 넘어간다.

브라우저에서 지정된 시간이 지난 후 콜백 함수를 실행한다.

이 콜백 함수는 바로 실행된되는 것이 아닌 setTimeout 이라는 함수 안에 하나의 파라미터 인자로 지정한 함수를 전달한다.

 

setTimeout : browser에서 제공되는 api로 지정된 시간이 지나면 콜백함수를 호출하는 비동기 함수이다.

                 setTimeout 에는 timehandler 콜백 함수를 전달하고 timeout 하는 시간(milisecond)을 지정하는 인자들이 있다.

 

콜백 함수 : 전달한 함수를 부르는 나중에 부르는 경우

 

[참고영상]

드림코딩 by 엘리 / 자바스크립트 / 11.비동기 처리

https://www.youtube.com/watch?v=s1vpVCrT8f4&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=12&t=0s

 

728x90

+ Recent posts