[JS] var, let, const
자바스크립트 변수 선언 var, let, const 차이점에 대한 포스팅입니다.
✅ var, const, let의 차이점에 대해 설명해 주세요.
var는function-scoped이고,let,const는block-scoped입니다.var는 변수 재선언, 재할당 모두 가능합니다.const는 변수 재선언, 재할당 모두 불가능합니다.let은 변수 재선언은 불가능하고, 재할당은 가능합니다.
| let | const | var | |
|---|---|---|---|
| 유효범위 | Block Scope | Block Scope | Function Scope |
| 재할당 | ⭕ | ❌ | ⭕ |
| 재선언 | ❌ | ❌ | ⭕ |
🔗 용어 설명
✔ function-scope
function-scope는 함수 내부 스코프를 의미하며, 함수 내부에서 선언된 변수는 함수 내부에서만 접근 가능합니다.
function test() {
for(var i=0; i<3; i++){
console.log(i);
}
console.log('final:', i);
}
i를 var로 선언했기 때문에 함수 안에서만 접근하면 얼마든지 i에 접근할 수 있습니다.
✔ block-scope
block-scope는 블록 {} 내부의 스코프를 의미하며, 블록 내부에서 선언된 변수는 블록 내부에서만 접근이 가능합니다.
function test() {
for(let i=0; i<3; i++){
console.log(i);
}
console.log('final:', i);
}
i를 let으로 선언했기 때문에 블록 {} 안에서만 사용이 가능합니다. 따라서 for문 바깥에 위치한 console.log('final:', i);는 i에 접근할 수 없어 ReferenceError가 발생합니다.
Leave a comment