인프런 커뮤니티 질문&답변
객체와 배열의 const 차이
해결된 질문
작성
·
25
0
const로 했을 때 객체는 수정이 되고 배열은 수정이 안된다는 설명 부분이 이해가 잘 안됩니다. 고유 ID가 아니라는 말도 이해가 잘 안되는데 보충 설명을 받을 수 있을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 이선재님.
const 키워드는 변수를 선언하지만, 이 변수가 참조하고 있는 객체나 배열의 값을 변경할 수 없다는 의미는 아닙니다. const로 선언된 변수는 재할당이 불가능하지만, 객체나 배열 같은 경우에는 그 내부의 값을 변경할 수 있습니다. 이 때문에 객체와 배열은 “불변”하지 않다고 할 수 있습니다.
객체와 배열의 const 선언 차이
객체와 배열은 참조형 데이터입니다. 이는 변수가 실제로 담고 있는 것은 객체나 배열이 아니라, 그들이 저장된 메모리 주소입니다.
const로 선언하면 변수 자체는 같은 메모리 주소를 계속 참조하지만, 그 주소에 저장된 객체나 배열의 속성이나 요소는 수정할 수 있습니다.고유 ID가 아니라는 점은 변수 자체가 객체나 배열의 상태를 고유하게 보장하지 않기 때문에, 내부 상태는 변할 수 있다는 의미입니다.
예를 들면:
const arr = [1, 2, 3];
arr[0] = 10; // 가능
arr = [4, 5, 6]; // 오류, 재할당 불가!
const obj = { a: 1, b: 2 };
obj.a = 10; // 가능
obj = { a: 3, b: 4 }; // 오류, 재할당 불가!
위 예시에서 보시다시피, const로 선언한 객체 obj와 배열 arr의 내부 값 또는 속성은 변경할 수 있지만, 자체 재할당은 불가능합니다. 이 점을 기억하면 const 키워드의 사용에 있어 유용할 것입니다.
보다 자세한 설명을 원하시면, 관련 질문에 대한 유사한 답변도 확인해 보실 수 있습니다:
- JavaScript의 const로 선언된 변수의 변경 가능 여부 - const와 let의 차이를 설명하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





