Let and Const

ES6 이전에는 모든 변수 선언에 var을 이용했다. 하지만 여러 개발자들이 개발할 때 변수명의 중복이나 재정의를 막을 수 없었다. 따라서 흔히 사용하는 변수명(a, b, c, name, age, etc…)을 기피했다.

// 변수의 재정의 가능

var name = "Tom";

...

var name = "James";

...

ES6 이후 나온 let은 변수의 재정의를 막기 때문에 값이 변하는 변수를 사용할때 var 대신 이용한다.

// 변수의 재정의 불가능

let name = "Tom";

...

let name = "James";

...

Uncaught SyntaxError: Identifier ‘name’ has already been declared


const는 변하지 않는 상수를 저장할 때 사용한다.

// 상수에 새로운 값 할당 불가능

const name = "Tom";

...

name = "James";

...

Uncaught TypeError: Assignment to constant variable.


하지만 const가 생각하는 것처럼 완전히 read-only variable은 아니다.

// 오브젝트 내부는 변경 가능

const item = {
  index: 1
};

...

item.index = "James";

...

일반적으로 되도록이면 const를 사용하도록 하고 값이 변경되는 경우에는 let을 사용하는 것이 좋다. var는 사용하지 않는 것이 좋다.