반응형

데이터 타입(기본형과 참조형)


JavaScript 의 데이터 타입에는 두 가지 종류가 있습니다. 기본형과 참조형입니다.

데이터 타입에 대해 자세히 알아보겠습니다.

 

1. 기본형 

- 값이 담긴 주소값을 바로 복제

ex) 숫자, 문자열, 불리언, null, undefined (null과 undefined 의 차이점이란?), Symbol(ES6추가)

 

2. 참조형

- 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소값을 복제

ex) 객체, 배열, 함수, 날짜, 정규표현식

      ES6에 추가된 Map, WeakMap, set, WeakSet

 

먼저, 기본형은 불변성(Immutability) 의 성격을 띄우는데, 불변성을 이해하기 위해서는 메모리와 데이터에 대한 지식과

식별자와 변수의 개념을 이해해야합니다.

 

이번엔 메모리에 대한 배경지식을 이해해보겠습니다.

 

메모리와 데이터 

1. 비트(Bit)

0 또는 1만 표현할 수 있는 하나의 메모리 조각 

 

2바이트 크기의 정수형 타입(short) 은 0을 포함하여 -32768 ~ +32767 숫자만 허용 

=> 이상의 숫자를 입력하면 오류가 나거나 잘못된 값이 저장합니다.

=> 사용자가 직접 4바이트 크기의 정수형타입(int) 으로 변경해야 합니다.

=> JavaScript 는 상대적으로 메모리 관리에 대한 압박에서 자유로워졌습니다.

 

2. 바이트(Byte)

1 Byte = 8 Bite

 

비트(Bit)와 마찬가지로 바이트(Byte) 또한 시작하는 비트의 식별자로 위치를 파악할 수 있습니다.

모든 데이터는 바이트 단위의 식별자, 더 정확하게는 메모리 주소값을 통해 서로 구분하고 연결할 수 있습니다.

 

- 변수 : 변할 수 있는수, 변할 수 있는 데이터 => 변경 가능한 데이터가 담길 수 있는 공간 또는 그릇

- 식별자 : 어떠한 데이터를 식별하는데 사용하는 이름, 즉 변수명

 

변수 영역과 데이터 영역은 별개로 존재합니다.. (여기서 영역이라는 이름은 가칭입니다)

별개로 존재하는 이유는 데이터 변환을 자유롭게 할 수 있도록 함과 동시에 메모리를 더욱 효율적으로 관리하기 위한 고민의 결과이죠.

 

자바스크립트는 숫자형 데이터에 비해 64비트(8바이트) 의 공간을 확보합니다.

 

한번 만들어진 값은 변경되는 것이 아니고, 새롭게 저장되는 것입니다.

이 뜻은 가비지 컬렉팅을 당하지 않는 이상 영원히 변하지 않다는 것이죠!

var c = "abc";
c = c + "def";

var d = 5;
var e = 5;
d = 7;

 

c 라는 값은 결국 abcdef 가 되는데 이건 있던 abc 값이 변경되는 것이 아니고 새롭게 저장되는 것입니다.

d 같은 경우 5이고, e 도 5 가 저장되는데 기존에 5가 있었으므로 그 값을 재활용하는 개념입니다.

 

다음은 실행 컨텍스트에 대해 다뤄볼 예정입니다 : )

 

 

* 출처 : '코어 자바스크립트 - 핵심 개념과 동작 원리로 이해하는 자바스크립트 프로그래밍', 정재남 지음

반응형

'Front-End > JavaScript' 카테고리의 다른 글

[JavaScript] this 파헤치기  (0) 2020.03.28
[JavaScript] 실행 컨텍스트(Execution Context)  (0) 2020.03.21
[JavaScript] null 과 undefined  (0) 2019.05.13
[JavaScript] Symbol 객체  (0) 2019.05.13
[JavaScript] Destructuring  (0) 2019.02.18
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기