javascript의 변수에 대해 공부할때
var = es6이후 사용하지 않는 것을 추천, 재선언과 업데이트가 가능하다.
let = 업데이트는 가능하지만, 재선언은 불가능하다
const = 상수, 재선언, 재할당, 업데이트 불가
라고 공부를 했었다!
그러나 프로젝트를 진행하고 const를 사용하다보면, 객체 혹은 배열에 있어서 요소의 추가가 가능한것을 경험했다! 이유가 무엇일까?
사실 배열과 객체에서도 재선언혹은 재할당은 불가능하다 하지만 배열과 객체는 참조자료형 으로 메모리의 주소값을 저장하고 있어 주소값이 변경되지 않을 뿐, 내용이 변경되는 것과는 상관이 없는 것이었다.
-> 즉 배열과 상수내의 속성이 추가 혹은 변경이 되어도 각각의 배열 혹은 상수가 갖고 있는 주소값이 변한 것은 아니기에 가능!
- 참조 자료형
데이터 값이 여러개인 경우 효율적으로 값들을 관리하기 위해서 한 공간에 모아서 저장을 하고 주소값을 찾아서 데이터를 참조한다.