[TIL] Var, Let, Const 차이점

welcome·2021년 11월 4일

var, let const 차이점


  1. var는 중복 선언이 가능하지만 (중복선언할 경우 마지막에 할당된 값이 변수에 저장된다) const, let은 중복선언이 불가능하며 선언할 경우 에러가 발생된다.

  1. var, let은 재할당이 가능하지만 , const는 재할당이 불가능하다(const는 처음 선언할 때 반드시 초기화(값 할당)를 해주어야 한다.)

  1. var: 함수레벨 스코프 , let, const 블록레벨 스코프
  • var은 함수내부에 선언된 변수만 지역변수로 한정하며 나머지는 모두 전역 변수로 간주한다. (if, for, while 문 등 코드블럭 {} 내부에서 선언된 var도 전역변수로 간주한다)
function test() {
if (true) {
var a = 3;
}
console.log(a); // 3, 함수레벨스코프 이므로 IF블록을 외부에서도 a가 출력된다.
}
test()
console.log(a); // ReferenceError: a is not defined, 함수외부에서는 출력되지 않는다.
  • let, const는 블록레벨 스코프로 함수내부는 물론 {} 내부에서 선언된 변수도 지역변수로 취급한다.
function test() {
if (true) {
let a = 3;
}
console.log(a); // 3, 블록레벨스코프 이므로 IF블록을 외부에서도 a가 출력되지 않는다.
}

test(); 

console.log(a); // ReferenceError: a is not defined, 함수외부에서 역시 출력되지 않는다.

0개의 댓글