[Programming] - 모던 자바스크립트 05. 주석


모던 자바스크립트를 읽으며 기존에 알던 내용말고 추가적으로 알게된 내용을 정리해보았다.

1. 변수


자바스크립트 엔진은 변수 선언을 다음과 같은 2단계에 거쳐 수행한다.

  • 선언 단계 : 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알린다.
  • 초기화 단계 : 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefined를 할당한다.

변수 이름은 실행 컨텍스트에 등록된다.

자바스크립트 엔진은 실행 컨텍스트를 통해 식별자와 스코프를 관리한다.

var는 선언과 초기화 단계가 동시에 진행된다.

2. 변수 호이스팅


변수 선언이 소스코드 실행 전 단계에 먼저 실행된다.

그렇기 때문에 호이스팅이 발생한다.

var 키워드는 선언과 초기화 단계가 동시에 발생해 최 상단에서 호이스팅의 경우 undefined 로 설정된다.

하지만 let, const 키워드는 똑같이 호이스팅되지만 초기화 단계가 따로 실행되어 undefined로 초기화되어있지 않는다. 그래서 referenceError가 발생한다. (일시적 사각지대)

함수 선언또한 호이스팅이 발생한다.

3. 값의 할당


자바스크립트 엔진은 변수에 값을 할당 할 때

기존 데이터를 지우고 새로 저장하는것이 아니라

새로운 메모리 공간새로운 데이터를 저장하고 식별자에 새로 연결해준다.