JavaScript에서 변수를 생성할 때는 가장 잘 알려진 것은 var
일 것이다. 이번에는 변수 선언 방식인 var
, let
, const
에 대해서 알아보자.
탄생 배경
그 탄생 배경은 크게 두 가지로 나눌 수 있다. JavaScript의 초창기를 함께함 var
와 ES6에서 추가된 let, const
가 있다. 여기서 ES6는 아래 링크를 참고하길 바란다.
변수 선언 방식
우선, var는 변수 선언 방식에 있어서 큰 단점을 가지고 있다.
var name = 'bathingape'
console.log(name) // bathingape
var name = 'javascript'
console.log(name) // javascript
변수를 한 번 더 선언했음에도 불구하고, 에러가 나오지 않고 각기 다른 값이 출력되는 것을 볼 수 있다.
이는 유연한 변수 선언으로 간단한 테스트에는 편리할 수 있겠으나, 코드량이 많아 진다면 어디에서 사용된 변수인지 파악하기 힘들뿐만아니라 그 값을 잘못 사용할 수도 있다.
그래서 ES6 이후, 이를 보완하기 위해 추가 된 변수 선언 방식이 let과 const 이다.
위의 코드에서 변수 선언 방식만 바꿔보자.
let name = 'bathingape'
console.log(name) // bathingape
let name = 'javascript'
console.log(name)
// Uncaught SyntaxError: Identifier 'name' has already been declared
name이 이미 선언 되었다는 에러 메세지가 나온다. (const도 마찬가지) 변수 재선언이 되지 않는다.
let은 값을 수정할 수 있는 변수를 선언할 때 사용하고 const는 한번 지정하면 절대 변하지 않는 값인 상수를 선언할 때 사용한다.
const는 절대 변하지 않는다는 특징을 가지는 변수는 상수(constant)에서 따온 것으로 보인다.
따라서, ES6부터는 오류를 유발할 수 있는 var보다는 let과 const를 사용하자.