본문 바로가기
TIL

호이스팅 관련 const, let, var 에러 정리

by 은지:) 2024. 2. 5.
728x90
반응형

 

 

호이스팅

 

밑에 선언, 할당되어 있는 변수들을 앞에서 호출했을 때

선언된 변수만 가져오고 할당된 값은 못 가져오는 거임

 

 

호이스팅이 발생하면 선언된 변수는 undefined로 초기화되어 있기 때문에

undefined가 반환됩니다.

 

var : 초기화 + 할당 같이함

그래서 초기화는 일단 되었으니 undefined 뜸

레퍼런스 에러 x

 

 

letconst : 선언 / 초기화 분리되어서 일어남.

호이스팅에 의해 선언 부분만 끌어올려지고, 초기화는 선언이 이루어진 위치에서 발생함.

그래서 undefined도 못가져오고 레퍼런스 에러 남

 

 

 

 

1. 초기값 안 줬을 때 const

const a;
console.log(a)
const 는 무조건 초기값과 함께 있어야 함
그래서 초기값 없다고 에러 뜨는 거임
SyntaxError: Missing initializer in const declaration.

 

 

 

2. 초기값 안 줬을 때 let 

let a;
console.log(a);

undefined
let 특징임
초기값 안 주면 알아서 undefined로 초기화함

 

 

 

 

3. let의 선언 전 호출 (const 도 똑같음)

console.log(a)
let a = 1234;
ReferenceError: a is not defined
=> 초기화는 선언이 이루어진 위치에서 발생함
=> undifined도 못 뱉고 레퍼런스 에러

 

 

 

4. 변수도 없고 초기화된 값도 없음

console.log(b)
ReferenceError: b is not defined

해당 변수가 선언 조차 되지 않았을 때
찾다가 없다고 레퍼런스 에러 뜸

 

 

 

 

5, 초기화 이미 되어서 올라감. var는 undefined 뱉음

var a;
console.log(a)
var도 선언시 바로 undefined로 초기화 됨

 

 

 

 

 

 

 

728x90
반응형

'TIL' 카테고리의 다른 글

Facade Pattern  (0) 2024.03.05
추상화 팩토리 패턴  (1) 2024.02.06
팩토리 패턴  (0) 2024.02.05
얕은 복사 깊은 복사 다시보기  (0) 2024.01.28
자바스크립트 메모리 관리 // 호이스팅, 스코프 체이닝  (2) 2024.01.28

댓글