호이스팅
var, let, const로 선언한 표현식이나 function 선언문 등을 실행 단계에서 해당 Scope의 맨 위로 옮기는 것을 말한다.
아래와 같이 예를 들어보자.
console.log(name); // undefined
var name = 'hello World';
해당 코드는 undefined를 return한다. JavaScript가 호이스팅을 하여 아래와 같이 해석하기 때문이다.
var name = undefined;
console.log(name);
name = 'hello World';
TDZ (Temporary Dead Zone)
선언은 되어있지만, 초기화가 되지 않아 이를 위한 자리가 메모리에 준비되어 있지 않은 상태
아래와 같이 예를 들어보자.
pi; // ReferenceError
const pi = 3.14;
pi; // 3.14
const 변수는 선언 및 초기화 전 줄까지 TDZ에 있다.
const 변수는 아래와 같이 선언한 후에 사용해야 한다.
const pi = 3.14;
pi; // 3.14
결론
- var, let, const는 호이스팅 된다.
- var는 왠만하면 쓰지말자.
- 호이스팅은 변수 선언을 최상단으로 끌어올린다는 뜻이다.
- let은 선언과 동시에 TDZ에 들어가 초기화가 필요한 상태가 된다.
- const는 선언과 함께 초기화까지 이루어진다.
반응형
'Front > javascript' 카테고리의 다른 글
[javascript] 일반 전화번호 포함 유효성 검사 (0) | 2022.11.29 |
---|---|
[JavaScript] input 입력 글자수 제한 하기 (0) | 2022.07.06 |
[JavaScript] Ajax란? (0) | 2022.01.05 |
[JAVASCRIPT] 출력 방법 (0) | 2021.12.19 |
[이클립스] javascript 자동 완성 기능 설정하기 (0) | 2021.12.02 |