var
, const
, let
키워드로 변수를 선언할 수 있다.
무슨 차이가 있을까요 ,,,
흔히들 많이 쓰는 var
키워드의 치명적인 단점.
아래 코드는 에러가 나지 않는다.
var a = "Hello World!";
console.log(a); // Hello World!
var a = "Hello Javascript!";
console.log(a); // Hello Javascript!
이런 짧고 간단한 코드에는 아무 문제 없고 오히려 편할 수도 있다.
코드가 길어진다면? 나도 모르는 새에 내가 설정한 변수의 값이 변경돼 의도되지 않은 결과가 나오겠지.
const
와 let
은 이러한 var
의 단점을 보완하기 위해 ES6
이후 추가된 변수 선언 키워드이다.
let a = "Hello World!";
console.log(a); // Hello World!
let a = "Hello Javascript!";
console.log(a);
// Uncaught SyntaxError : Identifier 'a' has already been declared.
이전 코드에서 var
를 let
또는 const
로 바꾸면 에러 메시지가 출력된다.
const
와 let
은 위에서 봤듯이 둘 다 변수를 다시 선언할 수 없다. 둘의 차이점은 immutable
여부에 있다. const
는 변수의 값을 변경할 수 없다. 즉 재할당이 불가하다.
const
와 let
을 우선적으로 사용한다.const
를 사용해서 의도하지 않은 값 변경이 일어나지 않도록 하자.