Javascript Execution Context [자바스크립트 실행 컨텍스트, 스코프, 즉시 실행함수]
const & let
arrow function
class
object literal
promise
async & await
proxy
Generator
Iterator
Default + Rest + Spread
Symbol
Reflect
import & export
webpack 에 대한 이해
[ 과정 ]
Javascript Execution Context (EC)
실행 컨텍스트는 실행 가능한 코드가 실행되기 위해 필요한 환경
VO(변수 객체), GO(글로벌 객체), AO(활성 객체), SC(스코프 체인)
Global Code
Function Code
Eval Code
위와 같이 구분하는 이유는?각각의 단위마다 Execution Context를 생성하는데, 이 때 초기화(Initalizing) 하는 방식이 다릅니다.
Global Code -> Initalizing A
Function Code -> Initalizing B
Eval Code -> Initalizing C
어떤 시점에 생성되는것인가?
Javascript 엔진이 소스 코드를 평가할 때 생성됩니다.
Execution Context의 모습은?
1. 선언 단계
2. 실행 단계
1. 변수, 함수 식별자 값 할당
const & let
var 키워드로 변수를 선언할 경우 식별자의 등록과 함께 메모리 공간을 확보하고, undefined로 초기화 되는 반면, let/const 키워드로 변수를 선언할 경우 식별자만 record에 등록 되고, 해당 코드가 실행될 때 초기화와 함께 값이 할당됨으로 인해, 실행 되기전에는 식별자를 참조할 수 없다.
let 예약어는 한번 선언하면 다시 선언할 수 없다.
const 예약어는 한번 할당한 값을 변경할 수 없다.
단 객체 {}또는 배열[]로 선언했을 때는 객체의 속성(property)과 배열의 요소(element)를 변경할 수 있다.