var, let, const의 차이를 알아보자.
변수와 스코프
다음 코드를 치면 에러가 발생한다.
javascript
if (true) {
var x = 3;
}
console.log(x);
if (true) {
// let으로 해도 무방
const y = 3;
}
console.log(y);
분명 x는 잘 실행되는데, y는 되지 않는다. 왜 그럴까?
- var : 함수 스코프를 가진다.
- let, const : 블록 스코프를 가진다.
let vs const
- const : 한번 값을 할당하면 변경 불가. 상수라고 생각.
- let : 값을 계속 바꿀 수 있음.
javascript
const a = 0;
a = 1;
let b = 0;
b = 1;