이전에 우리는 var를 사용하였다. var에는 많은 단점이 존재하여 큰 어플리케이션을 만들때에 협업하며 많은 이슈를 불러올 수 있다.
var name = 'bibi';
예를들어 이런식으로 name을 전역변수로 선언을 하게되면 var는 어디에서나 재선언 재할당이 가능하기 때문에 추후에 name이 변하는것을 막는 메커니즘을 필요로 한다. 이런것들을 위해 만들어진것이 Let과 Constant이다.
Let은 쉽게 생각하면 이전의 var와 비슷하다.
블록 스코프의 범위를 가지는 지역 변수를 선언하며 값을 바꾸어줄 수 있고, 원하는 모든 Data Type에 대해 할당이 가능하다.
기본적으로 const를 사용하는 것이 바람직하지만 만약 변수값을 overwrite 해야하는 상황이 생긴다면 let을 사용하는것이 맞다.
let bibi = 'amazing';
bibi = '2bobi';
console.log(bibi); // 2bobi 출력
Constant는 '변하지 않는' 이라는 뜻이며, const라는 예약어를 사용해 선언할 수 있으며 const(상수)의 값은 재할당이 불가하여 재선언 또한 불가능하다. 값을 넣은 후에 재정의를 시도하면 바꿀수없다는 에러가 출력이 된다.
const는 잠겨있거나 우리가 원하는것처럼 read-only는 아니다. 만약 object라면 그 안의 아이템들에 대해서는 바꿀수있지만, 다시 할당은 불가능하다.
const person = {
name : 'bibi'
};
person.name = 'barnes';
console.log(person); // {name : 'barnes'} 가 출력된다.
// 재할당
person = true; // error
person = 20; // error
let : 중복 선언 불가능, 재할당 가능 / const : 중복 선언 불가능, 재할당 불가능
📖 참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/const - Let
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/const - Constant
https://nomadcoders.co/ - Nomad Coder