자바스크립트 엔진 중 가장 유명한 것은 구글의 v8 엔진일 것이다.
v8 엔진은 크롬과 nodeJS에서 사용된다.
v8 엔진을 간략히 나타내면 아래와 같다.
브라우저에는 개발자들이 사용하는 API가 있다. setTimeout 같은 것이 그 예이다.
하지만 이 API들이 엔진에 의해 제공되는 것은 아니다.
브라우저가 자체적으로 제공하는 웹 API의 개념으로 포함된다.
DOM, AJAX도 마찬가지이다.
자바스크립트는 single-threaded 프로그래밍 언어다.
이것은 콜스택이 하나라는 것과 같은 의미이다.
한 번에 하나의 일만 할 수 있게 되는 것이다.
콜스택은 현재 프로그램 내부에서 어느 위치인지를 기록하는 자료 구조이다.
위치가 함수의 안으로 들어가는 순간, 해당 함수는 콜스택의 가장 위에 놓인다.
해당함수에서 다시 돌아오면 콜스택의 가장 윗 부분이 제거된다.
콜스택이 쌓이는 과정을 다음 예시를 통하여 알아보자.
function multiply(x, y) { return x * y; } function printSquare (x) { let s = multiply(x, x); console.log(s); } printSquare(5)
엔진에서 위의 코드를 읽기 시작할 때에는 콜스택이 비어있었을 것이다.
코드를 읽어나감과 동시에 콜스택이 쌓일 것이다.
각각의 콜스택은 Stack Frame (스택 프레임)이라고 부른다.
웹 설문 영상 미리보기 (video src에 사용되는 영상의 코덱) (0) | 2020.07.21 |
---|---|
비동기 작업들(Async Processes)과 시한폭탄(timeout) (2) | 2020.07.15 |
190824 오늘의 Keyword (0) | 2019.08.24 |
190823 오늘의 Keyword (0) | 2019.08.23 |
Try & Catch, 인생은 시도와 에러 처리 (0) | 2019.08.22 |
댓글 영역