
JavaScript에서 변수를 생성할 때는 가장 잘 알려진 것은 var
일 것이다. 이번에는 변수 선언 방식인 var
, let
, const
에 대해서 알아보자.
탄생 배경
그 탄생 배경은 크게 두 가지로 나눌 수 있다. JavaScript의 초창기를 함께함 var
와 ES6에서 추가된 let, const
가 있다. 여기서 ES6는 아래 링크를 참고하길 바란다.
ECMAScript란?
JavaScript를 배우거나 사용하는 사람이라면 ES6 표준, ES5, ES2020등의 단어를 들어본 적이 있을 것이다. 하지만 arrow function, let, const, spread operator등이 ES6에서 추가됐다는 것은 알아도 ES가 무엇인지 찾
coding-leaf.tistory.com
변수 선언 방식
우선, 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를 사용하자.

JavaScript에서 변수를 생성할 때는 가장 잘 알려진 것은 var
일 것이다. 이번에는 변수 선언 방식인 var
, let
, const
에 대해서 알아보자.
탄생 배경
그 탄생 배경은 크게 두 가지로 나눌 수 있다. JavaScript의 초창기를 함께함 var
와 ES6에서 추가된 let, const
가 있다. 여기서 ES6는 아래 링크를 참고하길 바란다.
ECMAScript란?
JavaScript를 배우거나 사용하는 사람이라면 ES6 표준, ES5, ES2020등의 단어를 들어본 적이 있을 것이다. 하지만 arrow function, let, const, spread operator등이 ES6에서 추가됐다는 것은 알아도 ES가 무엇인지 찾
coding-leaf.tistory.com
변수 선언 방식
우선, 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를 사용하자.