자바스크립트 var, let, const 변수 차이점, 변수 사용하기
자바스크립트의 변수 중 var, let, const 세가지 변수가 있는데, 이 변수들은 어떻게 사용되는지 선언 방식을 알아보자.
1. var 변수
- 중복 선언 가능
var name = 'js';
console.log(name); // js
var name = 'script';
console.log(name); // script
- var로 선언한 변수는 동일한 이름으로 여러번 중복하여 선언이 가능하며, 마지막에 할당된 변수가 저장된다.
- 필요할 때마다 변수를 유용하게 사용할 수 있지만 이미 선언된 변수를 재할당하는 등의 실수가 발생되므로 코딩량이 많아졌을 때 디버깅이 힘들어진다.
- 이를 보완하기 위해 ES6에서 추가된 변수 선언 방식이 let과 const이다.
2. let 변수
- 중복 선언 불가능, 재할당 가능
let name = 'js';
console.log(name); // js
let name = 'script';
console.log(name);
// Uncaught SyntaxError: Identifier 'name' has already been declared
name = 'javascript';
console.log(name); // javascript
- var 변수와 다르게 let은 해당 변수가 이미 선언되었다는 오류 메세지가 출력된다.
- name = 'javascript'; 와 같이 변수 선언 및 초기화 이후 재할당이 가능하다.
3. const
- 중복 선언 불가능, 재할당 불가능
const name = 'js';
console.log(name); // js
const name = 'script';
console.log(name);
// Uncaught SyntaxError: Identifier 'name' has already been declared
name = 'javascript';
console.log(name);
// Uncaught TypeError: Assignment to constant variable
- const 함수는 중복선언과 재할당 시 에러메세지가 출력된다.
- let과 const의 차이점은 immutable (불변)의 여부이다.
- const는 constant(상수)를 뜻하기 때문에 한 번만 상수 선언이 가능하며 값을 바꿀 수 없다.
- const는 불변을 의미하는 것과 다르게, 배열과 오브젝트의 값 변경은 가능하다.
- 즉, 재할당 하는 코드만 불가능하다