본문 바로가기

sparta/본캠프

[본캠프] 9일차(3주차 강의 중)

3-1. 데이터 타입의 종류 및 메모리

데이터타입

-기본형 Primitive type

Number, String, Boolean, null, undefined, Symbol

참고형 Reference type-> Object

Array, Function, Data, RegExp, Map, WeekMap, Set,WeakSet

 

* 자바스크립트에서 값의 타입은 크게 기본형과 참조형인데 기준은 값의 저장방식과 불변성 여부이다.

1. 복제의 방식
a. 기본형: 값이 담긴 주소값을 바로 복제
b. 참조형: 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소값을 복제

2. 불변성의 여부
a. 기본형: 불변성을 뜀(메모리 관점)
b. 참조형: 불변성을 띄지 않음

 

 

메모리와 데이터 배경지식

1. 비트bit  : 0과 1, 가장작은 단위

2. 바이트byte : 8비트. 

3. 메모리 : byte단위로 구성. 메모리 주소값

헐. java와 c언어와는 다른 javascript는 메모리 관리 방식(정수 8은 8byte)
JS: let a=8(8byte)

 

식벽자, 변수

 var testValue(식별자)=3(변수)

- 변수=데이터

- 식별자=변수


3-2. 변수 선언과 데이터 할당(기본형데이터)

차례대로 할당된다.

* 위 그림과 같이 변수에 데이터의 주소값을 가져오는 이유
1. 자유로운 데이터 변환
2. 메모리를 효율적으로 관리
- 숫자는 8byte 고정이지만 문자는 고정이 아니다.
a. 한글=2byte(16bit)
b. 영문=1byte(8bit)
- 데이터를 그대로 가져오면 메모리에 큰 영역으로 저장하게 되므로 엄청 비효율적이다. 

 

기본형 데이터와 참조형 데이터

1. 메모리를 기준으로 다시 한번 생각해보는 두가지 주요 개념

a. 변수vs상수

- 변수:  변경o

- 상수: 변경 x

b. 불변하다vs불변하지 않다

- 불변하다: 데이터 영역 메모리를 변경할 수 없다.

 


3-3. 변수 선언과 데이터 할당(참조형 데이터) 변수복사의 비교

기본형 데이터의 변수 할당 과정과 차이점: 객체의 변수(프리퍼티)영역의 별도 존재 여부
참조형 데이터가 불변하지 않다(가변하다)라고 하는 이유

 

 

위 사진과 같이 불변하다.

 

중첩객체