자바스크립트 동작원리 초간단 정리
by EunHye Jung
자바스크립트 동작원리
- 웹브라우저(Chrome, IE, Firfox, Mozilla 등)는 자바스크립트를 실행시켜주는 엔진
- 웹 브라우저 내부에는 코드를 실행시켜주는
스택
이라는 공간이 있음 스택은 하나만 있음
그래서 한번에 하나의 코드만 실행 -> 자바스크립트는 Single Threaded Language라고 부름! -
console.log(1+1); setTimeout(function() { console.log(2+2); }, 100); console.log(3+3);
- 위 예제에서 setTimeout은 바로 실행하는 함수가 아님
- 이런것들은 스택에 집어넣어서 실행하지 않고 잠깐 대기실(?)에 빼놓고 실행한다고 보면됨
- 대기실에 보내는 코드들은 정해져 있음
- Ajax 요청코드, 이벤트리스너, setTimeout 등
- SetTimeout같은 코드들이 실행할 시점이 되면 Callback 큐, Event큐라고 부르는 대기실로 옮겨서 줄을 세운다
그다음 이 대기실에서 스택으로 한줄씩 올려보낸다.
하지만 무조건 큐에 있는것들이 스택으로 보내지는게 아니라 스택이 비어있을때만 옮겨질 수 있다. -
console.log(1+1); setTimeout(function(){ console.log(2+2); }, 0); // 0초후 2+2연산 실행 후 출력 console.log(3+3);
위 코드 실행하면 2 -> 6 -> 4 순으로 출력됨
setTimeout의 경우 0초가 걸려도 대기실을 거친뒤에 실행됨! - 자바스크립트는 동기적으로 처리된다.(한번에 한줄씩 순서대로)
그런데 setTimeout, 이벤트리스너, ajax함수같은걸 쓰면 가끔 비동기적처리도 가능하다.
(오래걸리는 코드들은 (대기실로) 재껴주고 빨리 되는거먼저 처리함)
Subscribe via RSS