TIL - const로 배열/객체를 선언하여 요소를 변경할 수 있는 이유는?

moontag·2022년 5월 23일
0

JavaScript TIL

목록 보기
14/20
post-thumbnail

답 스포 : 주소만 저장해서 가능해요~





Q. const로 배열/객체 선언이 왜 가능한가?

const는 변하지 않는 상수다.
그런데 배열과 객체는 요소를 추가/삭제하며 변경을 할 수 있다
그렇다면 const로 배열과 객체를 선언을 못 하는 것 아닌가?




이유

  • 배열, 객체는 참조값
    참조값은 변수에 주소를 할당한다.

따라서 const 변수에는 주소만 할당되어있다.
stack에는 주소만 저장됐고, heap에 실제 요소들이 저장되어있다.
실제 배열 요소들은 push나 pop으로 변경이 가능하고
참조된 주소는 변경되지 않으므로 const사용이 가능한 것이다.

  • let으로 배열과 객체를 선언할 경우,
    값이 아닌 주소변경(재할당)이 가능하므로 적절치 않다




profile
터벅터벅 나의 개발 일상

0개의 댓글