프로그래밍 공부/JavaScript

JavaScript 변수 선언 키워드(var, let, const)

U&MeBlue 2019. 8. 1. 23:48

JavaScript 변수 선언 키워드(var, let, const)

1. var 키워드

  • 초기 자바스크립트에서 변수 선언 키워드는 var만 존재하였다. 초기에는 var 키워드만을 가지고도 정상적으로 코딩할 수 있었다. 그러나 시간이 지나며 var 키워드가 동작하는 특징과 관련하여 문제가 되는 경우들이 발생했다(호이스팅 기술과 관련되었음). 이러한 문제를 수정하기 위해 ECMA6 부터 let과 const와 같은 새로운 변수 선언 키워드가 등장하게 된다.

호이스팅(Hosting)
호이스팅 기술은 var 키워드로 변수를 선언하기 전에 해당 변수에 값을 할당할 수 있게 하는 기술이다.

a = 10;  // var 키워드로 변수 선언 전에 값 할당이 가능하다.
console.log(a);

var a;

호이스팅은 영어로 끌어올리다라는 뜻이다.

2. let 키워드: var 키워드 비교

  • let키워드로 선언한 변수는 호이스팅 기술을 사용할 수 없다. 즉 다음과 같은 코드는 예외를 발생시킨다.
a = 10;     // 호이스팅 기술을 사용할 수 없다.
console.log(a);

let a;

변수를 선언하기 전에 할당할 수 있게 하는 var키워드를 사용하는 코드는 혼란을 줄 수 있기 때문에 let키워드를 사용하여 혼란을 방지하는 것이 바람직하다.

  • var 키워드와 let 키워드의 또다른 차이점은 변수의 중복선언(Redeclare) 허용 여부이다. var 키워드를 이용하면 동일 이름의 변수를 중복해서 선언할 수 있다.
var a = 10;
var a = "변수"; // var 키워드는 중복 선언 가능
  • 그러나 let 키워드는 동일 이름의 변수를 중복해서 선언하면 에러를 발생시킨다.
let a = 10;
let a = "변수"; // 이 줄에서 에러가 발생한다.

에러를 없애려면 다음과 같이 작성해야 한다.

let a = 10;
a = "변수";

동일 이름의 변수를 중복해서 선언하는 것은 바람직하지 않기 때문에 역시 var키워드보다 let 키워드를 사용하여 중복선언을 방지하는 것이 바람직하다.

3. var 키워드를 let 키워드로 대체하기

  • 위에서와 같은 특징들 때문에 var 키워드보다 let 키워드를 통해 변수를 선언하는 것이 바람직하다. 오래된 버전의 브라우저를 지원하기 위해 var 키워드를 사용하는 것이 아니라면...