본문 바로가기

JavaScript

Const, let

es2015에서는 letconst가 추가되었다.
javascipt에는 그동안 var만 존재했기 때문에 아래와 같은 문제가 있었다.

// 이미 만들어진 변수이름으로 재선언했는데 아무런 문제가 발생하지 않는다.
var a = 'test' var a = 'test2'
// hoisting으로 인해 ReferenceError에러가 안난다.
c = 'test' 
var c

위와 같은 문제점으로 인해 javascript를 욕 하는 사람이 참 많았다. 하지만 let, const를 사용하면 var를 사용할 때보다 상당히 이점이 많다. 두 개의 공통점은 var와 다르게 변수 재 선언이 불가능이다. let과 const의 차이점은 변수의 immutable 여부이다. let은 변수에 재할당이 가능하지만, const는 변수 재 선언, 재할당 모두 불가능하다.

 

// let
let a = 'test'
let a = 'test2' // Uncaught SyntaxError: Identifier 'a' has already been declared
a = 'test3'     // 가능

// const
const b = 'test'
const b = 'test2' // Uncaught SyntaxError: Identifier 'a' has already been declared
b = 'test3'    // Uncaught TypeError:Assignment to constant variable.