Javscript에서 var
, let
, const
의 차이점에 대해 알아보자.
우선 var
는 변수 선언 방식에있어 큰 단점을 가지고 있다.
var name = "Hi, Wecode"
console.log(name) // Hi, Wecode
var name = "Javascript"
console.log(name) // Javascript
변수를 한 번 더 선언했음에도 불구하고, 에러가 나오지 않고 각기 다른 값이 출략되는 것을 볼 수 있다.
이럴경우, 코드량이 많아 진다면 어디에서 어떻게 사용될지도 파악하기 힘들뿐더러 값이 바뀔 우려가 있다.
그래서 ES6 이후, 이를 보완하기 위해 추가 된 변수 선언 방식이 let
과 const
이다.
let name = 'Hi, Wecode'
console.log(name) // Hi, Wecode
let name = 'javascript'
console.log(name)
// Uncaught SyntaxError: Identifier 'name' has already been declared
name
이 이미 선언 되었다는 에러 메세지가 나온다 / const
도 마찬가지
변수 재선언이 되진 않는다.
let
과 const
차이점이 둘의 차이점은 immutable
여부이다.
let
은 변수에 재할당이 가능 하다.
let name = 'Hi, Wecode'
console.log(name) // Hi, Wecode
let name = 'javascript'
console.log(name)
// Uncaught SyntaxError: Identifier 'name' has already been declared
name = 'react'
console.log(name) //react
cosnt
는 변수 재선언 , 변수 재할당 모두 불가능 하다.
const name = 'Hi, Wecode'
console.log(name) // Hi, Wecode
const name = 'javascript'
console.log(name)
// Uncaught SyntaxError: Identifier 'name' has already been declared
name = 'react'
console.log(name)
//Uncaught TypeError: Assignment to constant variable.
변수 선언에는 기본적으로 const
를 사용하고, 재할당이 필요한 경우에 let
을 사용하는 것이 좋다.
그리고 객체를 재할당하는 경우는 생각보다 흔하지 않다. cosnt
를 사용하면 의도치 않은 재할당을 방해주기 때문에 안전하다.