배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유는?

0

코드 || 키워드

목록 보기
3/5

const로 선언해도 요소, 속성 수정가능

JavaScript에서 const로 선언된 배열과 객체는 재할당이 불가능합니다. 즉, 변수 자체를 다른 배열이나 객체로 재할당하는 것은 허용되지 않습니다. 하지만 const로 선언된 배열과 객체의 요소 또는 속성은 변경할 수 있습니다.

이러한 동작은 const가 변수가 가리키는 값을 변경하는 것을 방지하지만, 값을 변경하는 메서드를 포함한 함수를 호출하거나 직접 요소와 속성에 접근하여 값을 변경하는 것을 막지 않기 때문입니다.

예를 들어, const로 선언된 배열에 새로운 요소를 추가하거나 기존 요소를 수정하는 것은 가능합니다. 이는 배열의 참조 자체를 변경하는 것이 아니라 배열 내부의 내용을 수정하는 것이기 때문에 const 규칙을 위반하지 않습니다.

const myArray = [1, 2, 3];
myArray.push(4); // 가능: 배열에 요소를 추가합니다.
myArray[0] = 10; // 가능: 기존 요소를 수정합니다.

객체의 경우에도 const로 선언된 객체는 객체 자체를 다른 객체로 재할당하는 것을 허용하지 않지만, 객체의 속성은 변경 가능합니다.

const myObject = { name: 'John', age: 30 };
myObject.age = 31; // 가능: 객체의 속성 값을 변경합니다.
myObject.gender = 'male'; // 가능: 객체에 새로운 속성을 추가합니다.

const로 선언된 변수에 대한 규칙은 변수가 가리키는 값을 보호하는 데 도움이 됩니다.
그러나 객체와 배열의 내용을 변경하는 것은 변수 자체를 변경하는 것과는 다른 개념이기 때문에, const로 선언된 객체와 배열도 내부 요소와 속성을 수정할 수 있습니다.

profile
안녕하세요😄 비전공자의 웹개발자 도전기를 쓰는 중입니다! 수정/보완할 부분이 있다면 피드백 언제든 환영입니다!

2개의 댓글

comment-user-thumbnail
2023년 7월 26일

유익한 글이었습니다.

1개의 답글