Blocking과 Non-Blocking은 현재 수행 중인 코드가, 다음 작업 과정을 막는 경우가 발생하는지, 발생하지 않는지로 구분할 수 있습니다.
JavaScript는 싱글 스레드 기반이며, Non-Blocking 언어입니다.
아래 코드처럼 어떠한 코드가 실행됨에 따라 해당 코드의 실행 때문에 다른 코드를 실행할 수 없는 현상에 주목할 수 있습니다.
이 때 브라우저는 마치 정지된 것처럼 보이는데, 이것을 Blocking 현상이라고 합니다.
// 대표적 Blocking 함수
alert("Hello");
// alert()가 실행되면, 바로 console출력이 일어나지 않음
// 이는 alert()의 Blocking(차단)으로, console.log()의 실행이 막혔기 때문
console.log("Lee");
JavaScript가 만약 동기적으로만 작동한다면 어떻게 될까요?
자바스크립트 엔진의 구성

function C() {
return 1;
}
function B() {
const one = C();
return one;
}
function A() {
const result = B();
console.log(result);
}
A();

Web API
