개발자가 되기 위한 꿀팁 및 정보
[기술면접준비] 배열, 객체를 const로 선언했는데, 요소나 속성을 추가할 수 있는 이유
푸른매실
2023. 4. 3. 11:21
const로 선언된 배열이나 객체에 대해서는 요소나 속성을 추가, 변경, 제거할 수 있습니다. 그러나 변수를 재할당하지 못하게 합니다.
배열과 객체는 참조 타입의 값이므로 const로 선언해도 해당 변수에 할당된 참조 값(메모리 주소)은 변경할 수 없지만, 해당 참조 값이 가리키는 객체나 배열은 변경이 가능합니다. 변수에 할당된 배열이나 객체를 변경하는 것은 불가능하지만, 배열이나 객체 내부의 항목을 변경하는 것은 가능합니다.
예를 들어, 다음과 같이 const로 선언된 배열과 객체에 요소나 속성을 추가할 수 있습니다.
const arr = [1, 2, 3];
arr.push(4);
console.log(arr); // [1, 2, 3, 4]
const obj = { a: 1, b: 2 };
obj.c = 3;
console.log(obj); // { a: 1, b: 2, c: 3 }
하지만 const로 선언된 배열이나 객체는 다음과 같이 전체를 다른 값으로 할당하려고 시도하면 에러가 발생합니다.
const arr = [1, 2, 3];
arr = [4, 5, 6]; // TypeError: Assignment to constant variable.
const obj = { a: 1, b: 2 };
obj = { c: 3 }; // TypeError: Assignment to constant variable.
즉, const로 선언된 배열이나 객체는 재할당을 막지만, 요소나 속성의 값을 변경하는 것은 막지 않습니다.