[JavaScript] const, let, var 차이점 정리
포스트
취소

[JavaScript] const, let, var 차이점 정리

🧐 const, let, var는 어떻게 다를까요?

JavaScript ES6 이전에는 변수를 선언할 때 주로 var를 사용했습니다.

하지만 ES6 이후에는 constlet이 도입되면서 변수 선언 방식이 더 명확해졌습니다.

처음에는 셋의 차이가 헷갈릴 수 있습니다.

const는 언제 쓰지?
let은 언제 쓰지?
var는 아직 써도 되나?

이번 글에서는 const, let, var의 차이와 권장 사용 방식을 정리해보겠습니다.


🔒 const

const는 재할당할 수 없는 변수를 선언할 때 사용합니다.

1
2
3
4
const age = 21;

age = 22;
// TypeError: Assignment to constant variable.

또한 const는 선언과 동시에 값을 할당해야 합니다.

1
2
const name;
// SyntaxError: Missing initializer in const declaration
1
const name = "독고진";

기본적으로 값이 다시 바뀌지 않는다면 const를 사용하는 것이 좋습니다.


✏️ let

let은 값이 바뀔 수 있는 변수를 선언할 때 사용합니다.

1
2
3
4
5
6
let name = "독고진";

name = "구애정";

console.log(name);
// "구애정"

하지만 같은 이름으로 다시 선언할 수는 없습니다.

1
2
3
let name = "독고진";
let name = "구애정";
// SyntaxError

즉, let은 재할당은 가능하지만 재선언은 불가능합니다.


⚠️ var

var는 ES6 이전에 사용하던 변수 선언 키워드입니다.

현재는 가능하면 사용하지 않는 편이 좋습니다.

가장 큰 이유는 같은 이름으로 다시 선언해도 에러가 나지 않는다는 점입니다.

1
2
3
4
5
6
7
var age = 28;
console.log(age);
// 28

var age = "old";
console.log(age);
// "old"

실수로 같은 변수명을 다시 선언해도 조용히 덮어쓰기 때문에 코드가 길어질수록 버그를 만들기 쉽습니다.


🧱 스코프 차이

constlet은 블록 스코프를 가집니다.

1
2
3
4
5
6
7
8
if (true) {
  const a = 1;
  let b = 2;
}

console.log(a);
console.log(b);
// ReferenceError

반면 var는 함수 스코프를 가집니다.

1
2
3
4
5
6
if (true) {
  var a = 1;
}

console.log(a);
// 1

이런 차이 때문에 var는 예상보다 넓은 범위에서 접근될 수 있습니다.


📊 비교 정리

키워드재할당재선언스코프권장 여부
const불가능불가능블록 스코프기본으로 사용
let가능불가능블록 스코프값이 바뀔 때 사용
var가능가능함수 스코프사용 지양

✅ 정리

모던 JavaScript에서는 다음 기준으로 변수를 선언하면 좋습니다.

  1. 기본적으로 const를 사용합니다.
  2. 값이 바뀌어야 하는 경우에만 let을 사용합니다.
  3. var는 특별한 이유가 없다면 사용하지 않습니다.

이 기준만 지켜도 변수 관련 실수를 많이 줄일 수 있습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

[React] react-github-calendar로 깃허브 잔디 보여주기

[JavaScript] for...in과 for...of 차이점 정리