메모리 저장 방식; 변수 및 상수, 불변 및 불변. (JS 문법 종합 수업, 3-2주차)

JavaScript의 메모리 관리 방법에서 (변수)와 (상수)의 차이점은 무엇입니까? 불변과 불변의 차이점은 무엇입니까?

먼저 스파르타 코딩 동아리(JS문법종합수업) 3주차 자료형 부분 강의자료를 보도록 하겠습니다.

(개인PC에 저장, 링크 생략)

말로 설명하겠습니다.

(변수)와 (상수)의 차이점은 메모리에 있는 변수 영역의 주소 값을 변경할 수 있으면(variable), 변경할 수 없으면(constant) 입니다.

변수 부분의 주소 값은 항상 메모리의 데이터 영역 중 하나를 가리킵니다.

여기서 (변수)용 변수 영역 메모리라면 데이터 영역이 가리키는 주소를 변경할 수 있다.

그래서 아래와 같이 a(변수)에 새로운 값을 대입하면 메모리의 데이터 영역에 값 7의 주소가 새로 생성되고, 메모리의 a라는 변수 영역은 새로 생성된 주소를 가리킨다.

.

var a = 5;
a = 7;

그런데 이(변수)의 메모리 영역 중 ‘불변’ 영역이 있습니다.

a에 할당된 값이 변경되었지만 변경되지 않은 것은 무엇입니까? 기존 데이터 5가 저장된 메모리의 데이터 영역입니다.

이전에 5가 포함된 데이터 영역의 주소가 2003이라고 가정합니다.

a = 7; 호출된 코드에서 할당값이 변경되었으나 2003번에 입력된 데이터는 변경되지 않습니다.

주소 2003과 그 안의 데이터 5는 ‘불변’이며, 새로운 주소 2004가 생성되고 거기에 7이 저장됩니다.

이것은 불변성입니다.

한 가지 특이한 점은 이러한 불변 데이터 영역이 더 이상 유용하지 않으며 가비지 수집기에 의해 제거되고 있다는 것입니다.

메모리 클리너입니다.

a는 더 이상 5가 아니라 7이므로 데이터 5는 쓰레기입니다.

반대로 불변이 되지 않으려면 어떻게 해야 할까요? 이건 질문으로 남겨두겠습니다.