변수의 생성 과정
1. 선언 단계
2. 초기화 단계
3. 할당 단계
console.log(name); // undefined
var name = ‘Mike’;
var name;
console.log(name);
name = ‘Mike’;
// console.log(name); // Temporal Dead Zone - Error
const name = ‘Mike’; // 함수 선언 및 할당
console.log(name); // 사용 가능
let age = 30;
function showAge() {
console.log(age);
let age = 20; // Error
}
showAge();
var
1. 선언 및 초기화 단계(동시에 일어남)
2. 할당 단계
💡 초기화: undefined를 할당해주는 단계
let
1. 선언 단계
2. 초기화 단계
3. 할당 단계
💡 선언 직후 호이스팅 되지만 초기화 단계는 코드에 도달했을때 이루어진다. 때문에 reference error 발생
let name;
name = ‘Mike’;
// 재할당 가능
const
1. 선언 + 초기화 + 할당
const gender; // SyntaxError: Missing initializer in const declaration
gender = ‘male’;
// const는 재할당이 불가능 하기 때문에 SyntaxError 발생
// var 예시
const age = 30;
if (age > 30) {
var txt = ‘성인’;
}
console.log(txt); // 성인