변수 2

Bard·2022년 1월 28일
0

Deep Dive

목록 보기
3/3

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

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

실행 컨택스트란?
자바스크립트 엔진이 소스코드를 평가하고 실행하기 위해 필요한 환경을 제공하고 코드의 실행 결과를 실제로 관리하는 영역으로 자바스크립트 엔진은 실행 컨텍스트를 통해 식별자와 스코프를 관리
나중에 컨텍스트 단원에서 자세히 알아볼 듯

var 키워드를 사용한 변수 선언은 선언 단계와 초기화 단계가 동시에 진행된다. var score;는 선언 단계를 통해 변수 이름 score를 등록하고, 초기화 단계를 통해 score 변수에 암묵적으로 undifined를 할당해 초기화다

일반적으로 초기화란 변수가 선언된 이후 최초로 값을 할당하는 것을 말한다
만약 초기화 단계를 거치지 않으면 확보된 메모리 공간에는 이전에 다른 애플리케이션이 사용했던 값이 남아 있을 수 있다 - 쓰레기 값

이는 변수 선언이 소스코드가 순차적으로 실행되는 런타임 이전 단계에서 먼저 실행된다는 증거로 호이스팅가 있는 이유다

console.log(score); // undefined

var score; // 1. 변수 선언
score = 80; // 2. 값의 할당

console.log(score); // 80
console.log(score); // undefined

var score = 80; // 1. 변수 선언과 값의 할당

console.log(score); // 80
profile
영차영차🐢

0개의 댓글