깜놀하는 해므찌로

javascript var, let, const / 블록 레벨 스코프 본문

IT

javascript var, let, const / 블록 레벨 스코프

agnusdei1207 2023. 5. 31. 11:27
반응형
SMALL

블록 레벨 스코프(Block-level scope)
모든 코드 블록(함수, if 문, for 문, while 문, try/catch 문 등) 내에서 선언된 변수는 
코드 블록 내에서만 유효하며 코드 블록 외부에서는 참조할 수 없다. 
즉, 코드 블록 내부에서 선언한 변수는 지역 변수이다.

 

선언, 초기화, 할당 단계가 나눠져 있음

1. 선언 단계(Declaration phase)
변수를 실행 컨텍스트의 변수 객체(Variable Object)에 등록한다. 이 변수 객체는 스코프가 참조하는 대상이 된다.

2. 초기화 단계(Initialization phase)
변수 객체(Variable Object)에 등록된 변수를 위한 공간을 메모리에 확보한다. 
이 단계에서 변수는 undefined로 초기화된다.

3. 할당 단계(Assignment phase)
undefined로 초기화된 변수에 실제 값을 할당한다.
console.log(x); // undefined

var x;
console.log(x); // undefined

x = 1; // 할당문 : 할당 단계
console.log(x); // 1

 

반응형
LIST