자바스크립트 - var / const / let 이란? 왜 let과 const가 생겼을까?

반응형

var / let / const 이란?

var

자바스크립트에서 변수를 선언할 때 var를 사용하였다.

var a = 'superman';

문자도 var 숫자도 var 하나로 동일하게 사용하여서 편리하였는데

ES6 이상 문법으로 갑자기 let과 const가 생겼다.

const

const b = 'batman'; // 변경 불가

const로 선언한 변수는 값을 변경할 수 없습니다.

변하지 않는 상수의 값만 선언할 수 있습니다.

let

let은 var와 같이 변수의 값을 변경 가능합니다.

하지만, 유효 범위가 다릅니다.

var result;

function add(a, b) {
   result = a + b; // 접근 가능
   return result
}

let은 { } 괄호 안의 선언된 범위 안에서만 접근이 가능합니다. (블록 레벨 스코프)

let result;

function add(a, b) {
   result = a + b; // error 접근 불가능
   return result
}

 

 

const는 변하지 않는 변수, let은 다시 변하는 변수를 선언하라는 것은 알겠는데,

const / var를 사용하면 되지, 왜 let이 생겼을까?

 

const 와 let을 사용 해야 하는 이유

var 의 문제점

  1. 함수 레벨 스코프
  2. 재 선언 가능

var의 scope는 함수단위이다.

이 스코프가 넓어서 문제가 생기는 경우가 많습니다.

 

재할당 가능해서 개발자가 실수로 동일한 변수이름으로

재선언을 하게 되면 코드에 오류가 생길 수 있습니다.

var a = 'superman';

function add() {
  var a = 'batman';
}

console.log(a); // ???

 

이러한 문제점들을 let과 const가 해결할 수 있습니다.

  1. 블록 레벨 스코프
  2. let은 재선언이 안되고
  3. const는 재할당이 되지 않는다.

const를 이용해서 상수 기능을 사용할 수 있고,

let을 이용하면 코드를 더 깔끔하게 작성할 수 있는 장점이 있습니다.

728x90
반응형