Javascript
데이터 타입&메모리_v3.1
WEB_CREASTORY
2023. 12. 15. 21:14
✅ 데이터 타입의 종류(기본형과 참조형)
자바스크립트에서 값의 타입은 크게 기본형(Primitive Type)과 참조형(Reference Type)으로 구분됩니다. 기본형과 참조형의 구분 기준은 **값의 저장 방식과, 불변성 여부**입니다.
💡 [기본형과 참조형의 구분 기준]
- 복제의 방식
- 기본형 : 값이 담긴 주소값을 바로 복제
- 참조형 : 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소값을 복제
- 불변성의 여부
- 기본형 : 불변성을 띔(=불변하다) // var a = 6; a = 'abc';(?) (메모리관점에서 불변)
- 참조형 : 불변성을 띄지 않음
자, “불변성을 띈다” 이 말을 이해하기 위해서 우리는 메모리와 데이터에 대한 내용을 이해해야만 합니다. 아래에서 그 배경지식을 낱낱이 살펴보기로 합시다 😎
(2) 메모리와 데이터에 관한 배경지식
- 메모리, 데이터
- 비트(0, 1)
- 컴퓨터가 이해할 수 있는 가장 작은 단위
- 0과 1을 가지고 있는 메모리를 구성하기 위한 작은 조각을 의미한다고 보면 될 것 같아요!
- 이 작은 조각들이 모여서 여러분들이 흔히 들으시는 **‘메모리’**가 만들어지는 것이죠.
- 비트(0, 1)
-
- 바이트
- 0과 1만 표현하는 비트를 모두 찾기는 부담
- 1개 → 2개 → … → 8개(새로운 단위 : byte)(이미지 출처 : https://namu.wiki/w/바이트)
- 메모리(memo + ry) : byte 단위로 구성
- 모든 데이터는 byte 단위의 식별자인 메모리 주소값을 통해서 서로 구분이 됩니다.
- </aside>
- java, c와 다른 javascript의 메모리 관리 방식(feat. 정수형)
- 8을 저장하는 방법
- JS : let a = 8(8byte)
- JAVA
- byte a = 8(1byte)
- short a = 8(2byte)
- int a = 8(4byte)
- long a = 8(16byte)
- java 또는 c언어가 초기에 등장했을 때 숫자 데이터 타입은 크기에 따라 다양하게 지정해줘야 할 만큼 개발자가 handling 할 요소들이 많았어요. 하지만 javascript는 이런 부분에서는 상당히 편리하죠. 메모리 이슈까지는 고민하지 않아도 되니까요 😎
- 8을 저장하는 방법
- 바이트
- 식별자, 변수
- var testValue(식별자) = 3(변수)
- 변수 = 데이터
- 식별자 = 변수명