let,var,const의 차이점

이건우·2022년 4월 4일
0

JavaScript

목록 보기
2/4

let, var, const의 차이점 ?

우선 varletconst와의 변수 선언방식에서의 차이점이 있습니다.

varletconst
재할당여부가능가능불가
스코프함수레벨블록레벨블록레벨
변수 호이스팅선언문 이전 참조가능. 단, 할당문 이전 변수를 참조하면 undefined 를 반환선언과 초기화가 분리되어 진행.일시적 사각지대 구간 존재(TDZ)선언과 초기화가 동시에 진행됨

var 키워드는 변수 중복선언이 가능한데 별다른 에러가 발생하지 않는대신 , 이때 변수를 중복선언 하면 할당된값까지 의도치않게 먼저 선언된 변수 값이 재할당되어 변경되는 부작용이 발생합니다

let bar =123 ;
// let이나 const 키워드로 선언된 변수는 같은 스코프내에 중복선언을 허용하지않음
let bar = 456; // 구문오류

하지만 let키워드로 이름이 같은 변수를 중복선언하면 '문법에러'가 발생한다. 따라서 초기화 단계 시작 지점까지 변수를 참조할 수 없는 일시적 사각지대(Temporal Dead Zone: TDZ) 구간이 존재합니다.

  1. ES6에서는 var를 사용하지 않는다.
  2. 재할당이 필요한 경우 한정해 let 키워드를 쓴다. 이때 변수의 스코프는 최대한 좁게!
  3. 변경이 발생하지 않고 읽기 전용으로 사용하는 원시값과 객체는 const를 사용한다.
  4. const키워드는 재할당을 금지하므로 var, let보다는 안전하다.
profile
내가 느낌만알고 한줄도 설명할줄 모른다면 '모르는 것'이다.

0개의 댓글