자바스크립트에서 변수를 선언할 때 var, let, const가 쓰이는 것을 자주 보았을 것이다.
var 는 선언 방식에 있어서 큰 단점을 가지고 있다
var name = 'Jaehyung'
console.log(name) // Jaehyung
var name = 'Dayoung'
console.log(name) // Dayoung
위 같은 코드를 작성했을 시, 이미 선언된 변수를 다시 선언했음에도 불구하고 에러가 나오지 않고 각각 다른 값이 출력된다.
변수를 유연하게 사용하기에는 좋을 수 있으나, 코드가 길어지고 변수가 많아지면 초기에 선언된 값이 바뀌면서 코드에 큰 영향을 끼칠 수 있다.
따라서 ES6 이후에 이를 보완하기 위해 let과 const가 추가됐다
let name = 'Dayoung'
console.log(name) // Dayoung
let name = 'Jaehyung'
console.log(name)
// Uncaught SyntaxError: Identifier 'name' has already been declared
위 처럼 변수를 선언할때 let을 사용하게 되면 변수가 중복으로 선언되는 것을 방지할 수 있다.
그렇다면 let과 const의 차이점은 무엇일까?
let name = 'Dayoung'
console.log(name) // Dayoung
name = 'Jaehyung'
console.log(name) // Jaehyung
const name2 = 'Dayoung'
console.log(name2) // Dayoung
const name2 = 'Jaehyung'
console.log(name2)
// Uncaught SyntaxError: Identifier 'name' has already been declared
name2 = 'Jaehyung'
console.log(name2)
//Uncaught TypeError: Assignment to constant variable.
위 코드에서 볼 수 있듯 let은 변수에 새로운 값을 재할당하는 것이 가능하다.
const는 변수 재선언, 재할당 모두 불가능 (immutable) 하다.
고로 기본적으로 변수를 선언할 때는 var보다 재할당 가능여부에 따라 let, const를 사용하는 것이 나은 선택이다.
'JavaScript' 카테고리의 다른 글
[JavaScript] 이벤트 버블링(Event Bubbling), 이벤트 캡처링(Event Capturing) (2) | 2022.10.04 |
---|---|
[JavaScript] 이벤트(Event)란? (1) | 2022.10.03 |
[JavaScript] 자바스크립트(JavaScript)의 역사 (1) | 2022.10.03 |
[Javascript] 클로저(Closure)란? (0) | 2021.10.18 |
[Javascript] 호이스팅(Hoisting)이란? (1) | 2021.10.14 |