📌 JavaScript에는 var, let, const 변수가 있다.
각각의 차이점은 무엇인지 알아보자.
- 선언 및 초기화 단계가 동시에 이루어진다.
- 할당 단계
console.log(name); //값 할당 전, undefined가 출력된다.
name = 'Mike';
var name;
- 선언 단계
- 초기화 단계
- 할당 단계
let name;
name = 'Mike';
- 선언 + 초기화 + 할당 단계가 동시에 이루어진다.
const gender;
gender = 'male';
//선언하면서 할당을 안했기 때문에 에러가 난다.
const name = 'hi';
console.log(name); // 'hi' 출력
const name = 'bye';
console.log(name); // 재선언이 불가능하다.
// Uncaught SyntaxError: Identifier 'name' has already been declared
name = 'js';
console.log(name);// 재할당이 불가능하다.
// Uncaught TypeError: Assignment to constant variable
=> TDZ : Temporal Dead Zone 때문
- TDZ영역에 있는 변수들은 사용불가
- let, const는 TDZ에 영향
- 할당하기 전에는 사용이 불가.
코드가 예측가능하고, 잠재적 버그 줄일 수 있다는 장점이 있다.
변수를 사용할 때는 , var
는 사용하지 않고 let, const
를 사용한다.
이는 예측가능한 결과를 낼 수 있고, 버그를 줄일 수 있다.
변수 선언에는 const를 기본적으로 사용하고, 재할당이 필요한 경우를 한정해 let을 사용하는 것이 좋다.