"const"도 수정 가능하다

조 은길·2021년 9월 28일
1

Javascript 정리

목록 보기
6/48
post-thumbnail

알고리즘 문제 중에 예시를 보여주는 상황이 있었는데, 이상한 점을 발견했다. 분명히 const라는 변하지 않는 값으로 선언과 할당을 해놨는데, 내부 값이 에러도 없이 수정되는 것이다.

예시를 통해 확인해보자!!

이런식으로 arr 전체를 재할당하는 것은 불가능하다.

그러나,

이런 식으로 배열 내부 요소를 수정하는 것은 const여도 가능한데, 한 번 할당하면, 수정이 불가능하다는 const에서 어떻게 이런 게 가능할까??


  • 찾아낸 설명

const는 "어떤 경우에도" 새로운 값을 할당하지는 못한다. 그러나, const에 객체가 할당되면 객체 내부의 속성이나 배열의 요소는 수정할 수있다.

JS에서 객체는 다음과 같은 개념들을 포함한다.

다시 말해서, 객체의 하나의 배열 역시도 내부의 속성이나 배열의 요소가 수정 가능하다.

그렇다면, 왜 내가 알고 있는 일반적인 객체 ( = 객체 리터럴 )은 그렇다치더라도 왜 배열과 함수까지 객체인 것인가??

바로 배열과 함수 둘다 객체의 성질을 사용할 수 있기 때문이다.

이런식으로 배열과 함수도 객체처럼 사용할 수는 있지만, 구지 이런 식으로 사용하지는 않는다.


profile
좋은 길로만 가는 "조은길"입니다😁

0개의 댓글