var const let 차이

  var const let
범위 Function Scope Block Scope
값 재정의 O X O
재선언 O X X

 

var

- 중복 선언이 가능하다.

- var는 function scope 생성


let, const

- ES6에 도입

- const는 재할당 불가능

1) 중복 선언이 되지 않는다.

 

2) Block level Scope

- 블록 안에서만 사용 가능하다.

 

3) let을 이용하면 호이스팅이 되지 않는 것 처럼 동작한다.

 

4) let으로 변수를 선언하면 변수를 일시적으로 사용할 수 없는 구간인 일시적 데드존 TDZ(Temporal Dead Zone)이 생긴다.

 


Primitive Value의 불변한(immutable) 특성

- var scope를 선언하고, scope에 80을 할당하면 아래 그림과 같이 생각할 수 있다.

- 하지만 primitive value는 불변의 특성을 가지고 있기 때문에, 값이 바뀌는 것이 아니라 주소 값이 바뀐다.

- 그리고 원래 사용되지 않는 주소 값들은 가비지컬렉터를 사용해서 메모리를 할당 해제(가비지 컬렉션 GC)한다.

 

템플릿 문자열

- 백틱(`)을 사용해서 새로운 문자열 생성 가능

var string = num1 + ' + ' + num2 + ' = ' + result;

const string = `${num1} + ${num2} = ${result}`;

+ Recent posts