변수에 object를 할당하면 데이터 자체가 할당이 되는 것이 아니라 주소값이 할당이 된다.
즉, x = 2라면 x에 2가 할당이 되지만 x = {y:2} 라는 object가 할당이 되면, 주소값(예를 들면 x123 이런 식으로) 주소값이 할당이 되는 것이다.
그래서 const x = 2라고 되어있으면 x의 값인 2는 수정이 불가능하지만 x = {y:2} 이런식으로 object를 할당시키면 주소값이 할당이 되는 것이기 때문에 값을 수정할 수 있다.
const arr = [1,2,2]
const x = {id: 1, y:2}
arr[2] = 3
arr
x.y = 5
x
array에서 id가 1인 오브젝트의 count를 변경해면 셋다(array, array2, array3) 변경된 내용을 볼 수 있다.
이유는 모두 배열 첫번째 요소는 참조값 x123이 가리키고 있는 id가 1인 동일한 오브젝트를 가리키고 있기 때문.