let & const & var let 과 const 차이점 var 와 let 과 const 활용


ES5까지는 var를 사용했으나, var가 가지고 있는 단점들을 보완하기 위해 ES6에서는 let 과 const를 사용할 수 있다.

  1. var는 중복선언이 가능했으나, let과 const는 불가능하다.

var a = 3; 이렇게 선언을 했어도, 다시 var a = 10; 이런식으로 중복 선언이 가능하다. 이는 의도치 않게 변수값을 변경하는 문제가 발생하게 된다. 하지만, let과 const로 선언을 할 경우, 중복선언을 하려고 하면, 에러가 발생하게 된다. 이렇게, let과 const를 사용하게 되면 중복선언을 미리 막을 수 있다.

  1. 유효범위가 다르다.

var를 이용한 변수 선언은 유효범위가 함수레벨이다. 즉, 함수내에서는 지역변수이고, 함수 밖에서는 전역변수이다.
let과 const를 이용한 변수 선언은 유효범위가 블록레벨이다. 즉, 블록내에서는 지역변수이고, 블록 밖에서는 전역변수이다.

let 과 const 차이점


  1. const는 상수(변하지 않는 값)를 위해 사용한다.(그렇다고 꼭 상수만을 위한 것은 아니다.)
  2. let은 재할당이 가능하고, const는 불가능하다.
  3. const는 반드시 선언과 동시에 할당이 이루어져야 한다. 그렇지 않으면, 문법에러가 발생한다.
  4. const 변수의 객체인 경우도 재할당이 불가능하다. 즉, 객체에 대한 참조를 변경하지 못한다는 것을 의미한다. 그러나, 할당된 객체의 프로퍼티 및 값은 변경할 수 있다.
    1
    2
    3
    4
    5
    const user = { name: 'Kim' };
    user = {}; // TypeError: Assignment to constant variable.

    // 객체의 내용은 변경할 수 있다.
    user.name = 'Ro';

var 와 let 과 const 활용


let: 재할당이 필요한 변수에 사용한다.
const: 재할당이 필요없는 변수에 사용한다.
var: ES6에서는 사용하지 않는다.