let과 const.

  • 그동안 var를 써왔다. varfunction scope를 가진다. function 안에서 정의하면 외부의 접근을 막아주지만, if안이나 try-catch문 등등 에서 선언하면 외부에서도 접근이 가능하다. 따라서 프로그램의 덩치가 커지거나, 다른 개발자와 협업시 var는 오염될 수 있다. 이러한 단점을 막기위해 letconst가 생겼다.
  • var 와는 달리, constletblock scope 를 가진다. 그 말인 즉슨, {} 안에서 선언한다면 외부에서 접근이 불가능하다는 뜻이다.
  • let 은 재할당이 가능하고, const 는 재할당이 불가능하다.
const lastName = 'hong';
//lastName = 'kim'     //<-- 불가능하다.
let   firstName = 'eunmo';
firstName = 'chulsoo'; //<--  가능하다.

그렇다고 const 가 불변인 것은 아니다. 다음의 예제를 보자.

const Person = {
  name : 'eunmo hong',
  gender : 'male',
  age : 29;
};

Person.age = 19;      // <-- 가능하다.
//Person = "123456"   // <-- 불가능하다.

결론. 기본적으로 const를 쓰되, 필요할 때만 let을 쓰자. var는 쓰지말자.