반응형
JavaScript 에서 변수 선언 방식에는 var, let, const 가 있다. 이들의 차이점은 무엇이며 어떻게 사용하면 되는지에 대하여 알아보자.
1. var 의 문제점
예전에는 JavaScript 에서 변수는 var 를 사용하였다.
하지만 var 는 큰 단점을 가지고 있다.
var text = 'java'
console.log(text)
var text = 'script'
console.log(text)
Output:
java
script
변수를 한 번 더 선언 했지만 해당 코드는 에러가 발생하지 않고 각 다른 값이 출력 되는 것을 볼 수 있다.
옛날에는 유연한 변수선언 방식으로 장점으로 꼽혔으나, 현재는 이런 유연한 때문에 오류가 발생하면 파악하기도 어렵고 값이 이렇게 변경될 여지가 있다.
그래서 ES6 이후, 이를 보안하기 위해 let 과 const 가 추가되었다.
2. let 의 사용법
위의 문제 되었던 코드를 let 으로 바꾸어 보자.
let text = 'java'
console.log(text)
let text = 'script'
console.log(text)
Output:
java
Uncaught SyntaxError: Identifier 'text' has already been declared
text 가 이미 선언되었다는 에러 메시지가 나온다. 이것은 뒤에 나올 const 도 마찬가지이다.
오류가 나오지 않도록 코드를 수정하자면 아래와 같다.
let text = 'java'
console.log(text)
text = 'script'
console.log(text)
Output:
java
script
이렇게 선언을 하지 않고 변수에 값을 재할당하면 가능하다.
3. const
그렇다면 const 는 무엇일까?
const 는 변수 재선언, 변수 재할당 모두 불가능하다.
const text = 'java'
console.log(text)
const text = 'script'
console.log(text)
text = 'test'
console.log(text)
Output:
java
Uncaught SyntaxError: Identifier 'text' has already been declared
Uncaught TypeError: Assignment to constant variable.
즉, 한번 변수에 할당을 하면 값을 바꿀 수 없다.
정리
변수 선언에 대하여 정리를 해보자면
- var는 되도록 쓰지 않는다.
- 변수 선언에는 기본적으로 const 를 사용한다.
- 재할당이 필요한 경우에 한정해 let 을 사용하는 것이 좋다.
객체를 재할당 하는 경우는 생각보다 흔하지 않다.
반응형