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
'JavaScript' 카테고리의 다른 글
| [JavaScript] 객체 수정 제한 (const, Object.freeze(), Object.seal(), Object.preventExtensions()) (0) | 2022.10.05 |
|---|---|
| [JavaScript] private class fields (자바스크립트 private 변수) (0) | 2022.10.05 |
| [JavaScript] 자바스크립트 단점 (0) | 2022.10.05 |
| [JavaScript] 프로토타입(prototype) (0) | 2022.08.11 |