자바스크립트

klmjiho·2021년 3월 14일
0

JS ES6

목록 보기
1/3

일하면서 순서대로 함수를 작성했는데도 순서대로 실행되지않고, 이것저것 궁금한게 많아서 정리해보는 자바스크립트

일단 자바스크립트는 웹페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어

자바스크립트 동작방식
기본적으로 싱글쓰레드 기반의 비동기처리를 지원
싱글쓰레드? 하나의 job만 수행하며, 멀티진행 ㄴㄴ

하지만 자바스크립트는 비순차적으로 하나의 이벤트에 대해서 많은 함수라도 동시성을 보장하며 빠르게 처리

function onload() {
A();
}

function A() {
console.log('함수 AAAA');
B(); // 함수 B 호출
console.log('B호출 끝남'); //이렇게 복귀ㄴㄴ A 다 실행하고 B호출됨
}

function B() {
console.log('함수 BBBB');
C(); // 함수 C 호출
}

function C() {
console.log('함수 CCCC');
}

동기적으로 실행된다면?
함수 A안에서 B가 실행될 때, 일반적인 A안에서 호출된 B가 끝나고 복귀하여 A가 실행되지만

자바스크립트(비동기적) 에서는?
A는 A대로 B는 B대로 실행

이 동시성 처리는 UI를 랜더링하고, 이벤트 I/O를 통해 JS를 처리하는 브라우저 엔진에서 호출스택에 담아 처리

이때, 큐(Queue) 방식으로 작업을 수행
위 코드 순서대로 함수가 호출 된다면

C

B

A
이렇게 차곡차곡 호출스택에 쌓인다

FIFO로 작업이 실행

0개의 댓글