자바스크립트 엔진
실행 컨텍스트 (Execution Context)
자바스크립트 엔진
자바스크립트는 코드 작성순이 아닌 처리가 빨리 되는것 부터 실행을 한다. 보통 single threaded 형식이며 동기적으로 처리된다. 자바스크립트 엔진은 두 가지 주요 구성 요소로 이루어져 있다.
- 메모리 힙 (Memory Heap) : 객체는 힙, 대부분 구조화되지 않은 메모리 영역에 할당된다.
- 콜 스택 (Call Stack) : 코드가 실행될 때 콜스택이 쌓인다.
실행 컨텍스트 (Execution Context)
실행할 코드에 제공할 환경 정보들을 모아놓은 객체라 하며 하나의 실행 컨텍스트를 구성할 수 있는 방법으로 전역, eval(), 함수 등을 실행하는 것이다. 우리가 흔히 실행컨텍스트를 구성하는 방법은 함수를 실행하는 것이다.
가장 먼저 자바스크립트 파일이 열리는 순간 전역 컨텍스트가 활성화 되며 콜스택에 쌓인다. 그리고 apple 함수가 호출이 되면 자바스크립트 엔진은 apple에 대한 환경 정보를 수집해서 apple 실행 컨텍스트를 생성한 후 콜스택에 담는다. 전역 컨텍스트와 관련된 코드의 실행을 중단하고 apple 실행 컨텍스트와 관련된 코드를 순차적으로 실행한다. 다시 banana 함수의 실행 컨텍스트가 콜 스택의 가장 위에 담기면 apple 컨텍스트는 중단하고 banana 함수 내부 코드를 진행한다. 실행이 종료되면 콜스택에서 제거되고 그 다음 순서에 있는 코드를 이어 진행한다..
자바스크립트를 html에 효율적으로 연결하는 방법
head 태그 안에 defer 과 함께 자바스크립트 파일을 연결시켜준다. 이 방법은 컴퓨터가 html을 모두 읽는 동안 main.js 파일이 준비가 되고, html 코드를 다 읽으면 차례대로 js파일이 실행되게하는 방법이다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>main</title>
<script defer src="main.js"></script>
</head>
<body>
</body>
</html>
💡 'use strict';
use strict이란 자바스크립트 파일 안에 쓰는 선언 방식중 하나이며 안전한 코딩을 위한 하나의 가이드라인이다. 예를 들어 암시적으로 선언한 변수를 사용하거나 읽기 전용 속성에 값을 할당하거나 확장할 수 없는 개체에 속성을 추가할 수 없게된다.
'Web > JavaScript' 카테고리의 다른 글
JavaSctipt | DOM 이란? (1) | 2021.10.24 |
---|---|
JavaScript | 객체 속성에 접근하는 방법 (점 표기법 / 대괄호 표기법) (0) | 2021.09.06 |
JavaScript | 배열 선언 / 추가,삭제/ 검색 (0) | 2021.09.03 |
JavaScript | 반복문(for, while) (0) | 2021.08.31 |
JavaScript | 함수의 정의와 호출의 차이점 (0) | 2021.08.26 |