728x90
반응형
호이스팅
밑에 선언, 할당되어 있는 변수들을 앞에서 호출했을 때
선언된 변수만 가져오고 할당된 값은 못 가져오는 거임
호이스팅이 발생하면 선언된 변수는 undefined로 초기화되어 있기 때문에
undefined가 반환됩니다.
var : 초기화 + 할당 같이함
그래서 초기화는 일단 되었으니 undefined 뜸
레퍼런스 에러 x
let 및 const : 선언 / 초기화 분리되어서 일어남.
호이스팅에 의해 선언 부분만 끌어올려지고, 초기화는 선언이 이루어진 위치에서 발생함.
그래서 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 |
댓글