JavaScript에서 const란 무엇인가?
const는 JavaScript에서 읽기 전용(read-only) 참조를 생성하는 선언 키워드입니다. const로 선언된 변수의 값은 재할당할 수 없으며, 같은 이름으로 다시 선언하는 것도 불가능합니다.
또한 const는 함수 스코프(function scope)가 아닌 블록 스코프(block scope)를 가지므로, 중괄호 {}로 묶인 블록 내에서만 유효한 지역 변수를 선언할 수 있습니다.
const의 기본 동작 원리
예를 들어 상수 변수 a를 선언했다고 가정해 보겠습니다. 한 번 값을 할당한 이후에는 새로운 값을 다시 할당할 수 없습니다.
// 'a'를 상수 변수로 선언 const a = 150; // 'a'는 상수이므로 새로운 값 할당 시도는 실패함 a = 0; // TypeError 발생 a++; // 역시 오류 발생 // 아래와 같은 재선언도 동작하지 않음 var a = 0; // SyntaxError 발생
주요 특징 정리
- 재할당 불가: 한 번 할당된 값은 변경할 수 없습니다.
- 재선언 불가: 같은 스코프 내에서 동일한 이름으로 다시 선언할 수 없습니다.
- 블록 스코프: 변수가 선언된 블록(
{}) 안에서만 접근 가능합니다. - 선언과 초기화 필수:
const는 선언과 동시에 값을 반드시 할당해야 합니다.
참고: 객체와 배열의 경우
const는 변수 자체의 재할당만 막을 뿐, 객체나 배열의 내부 값 변경까지 막지는 않습니다.
const obj = { name: "홍길동" };
obj.name = "김철수"; // 가능! 객체 속성 변경은 허용됨
obj = {}; // 오류! 재할당은 불가능
따라서 불변(immutable) 데이터가 필요하다면 Object.freeze() 같은 방법을 함께 고려해야 합니다.