1차 공부/기술면접 준비

배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해 설명해주세요

공대탈출 2023. 2. 28. 11:29

답변

배열, 객체는 const로 변수를 선언했을 때 찾아가는 주소만 할당된 참조 자료형이기 때문입니다. 요소나 속성을 변경하더라도 해당 주소는 변경되지 않으므로 const로 선언된 배열, 객체라도 속성을 추가할 수 있는 것 입니다.

 

꼬리질문

불변객체를 만드는 법.

const로 재할당은 불가능하지만 속성은 변경이 가능합니다. 이때 Object.freeze()메소드의 재할당은 가능하지만 속성은 변경 불가한 특성을 활용해 불변객체를 만들 수 있습니다. 또는 Object.assign()메소드, 전개연산자, lodash의 cloneDeep()을 활용해 깊은 복사를 하여 원본 객체를 보존하는 방법도 있습니다.