
var, let const 차이점
- var는 중복 선언이 가능하지만 (중복선언할 경우 마지막에 할당된 값이 변수에 저장된다) const, let은 중복선언이 불가능하며 선언할 경우 에러가 발생된다.
- var, let은 재할당이 가능하지만 , const는 재할당이 불가능하다(const는 처음 선언할 때 반드시 초기화(값 할당)를 해주어야 한다.)
- var: 함수레벨 스코프 , let, const 블록레벨 스코프
- var은 함수내부에 선언된 변수만 지역변수로 한정하며 나머지는 모두 전역 변수로 간주한다. (if, for, while 문 등 코드블럭 {} 내부에서 선언된 var도 전역변수로 간주한다)
function test() {
if (true) {
var a = 3;
}
console.log(a);
}
test()
console.log(a);
- let, const는 블록레벨 스코프로 함수내부는 물론 {} 내부에서 선언된 변수도 지역변수로 취급한다.
function test() {
if (true) {
let a = 3;
}
console.log(a);
}
test();
console.log(a);