[JavaScript] let, var, const

seungyeon·2021년 2월 11일
0

JavaScript

목록 보기
7/10

let, var, const 는 모두 변수를 선언하는 키워드이다. 우리는 이 셋의 차이점에 주목해야한다.
결론부터 말하자면 이 셋의 차이점은 '재선언재할당의 가능여부'이다.

재선언과 재할당 모두 가능한 var

var는 소위 말하는 '꼰대 코드'다.

예전에는 자주 사용되었지만 요즘에는 var의 사용을 지양해야 한다는 추세이기 때문인데, var가 재선언과 재할당을 모두 허용하는 키워드이기 때문이다.

var role; // 재할당을 허용하기 때문에 변수만 선언하는 것이 가능하다.
role = 'main vocal';
var role = 'center'; // 재선언까지 허용한다.

분명 var를 사용해 role 이라는 변수를 선언하고 값을 할당해주기까지 했지만, 다시 role 이라는 변수를 선언해도 에러코드가 뜨지 않는다. var를 사용해 기존에 있던 변수를 재선언하고, 값을 할당할 경우 기존에 선언된 변수에 저장되었던 데이터 자체가 대체되어버린다.

var의 사용을 지양해야 하는 이유에 대해 더 자세히 알고 싶다면 JAVASCRIPT.INFO의 오래된 'var' 문서를 확인해보자.

재할당만 가능한 let

let은 자바스크립트에서 변수 선언에 가장 많이 사용되는 키워드이다.
자바스크립트를 사용하다보면 변수에 저장된 데이터를 바꿔줘야 하는 일이 많이 생기는데, let은 변수 자체를 재선언하는 것은 허용하지 않지만, 변수에 값을 재할당하는 것은 허용하고 있다. 오류생성을 줄이고 필요한 기능만 남긴 유용한 키워드라고 할 수 있다.

let age; // 재할당을 허용하기 때문에 변수만 선언해 놓는 것이 가능하다.
age = 21;

// let은 재선언을 허용하지 않는다. 재선언을 할 경우 에러가 발생한다.
let age = 22; // SyntaxError: 'age' has already been declared 

재할당, 재선언 모두 불허. 엄격한 const

const 키워드는 앞의 두 키워드에 비해 엄격한 기준을 가지고 있다. const는 재선언과 재할당을 모두 허용하지 않는다. 때문에 절대 바뀌어서는 안되는 값을 저장할 때 const를 사용해 변수를 선언하고 값을 할당해준다.

const dataId = 00012; 

//const는 재할당이 안되기 때문에 반드시 변수선언과 할당이 동시에 이루어져야 한다.
const username; // SyntaxError: Missing initializer in const declaration

자바스크립트에서는 let의 사용을 권장하고 있다. 하지만 개인적으로 용도에 따라 const 키워드가 더 적합하다고 느껴질 때는 const를 사용한다. 무조건 let을 사용하기 보다는 적재적소에 알맞은 키워드를 사용하는 법을 터득하는 것이 중요할 것 같다.

0개의 댓글