본문 바로가기
부트캠프교육중/JavaScript

[JavaScript] 원시자료형와 참조자료형

by 뭉지야 2023. 1. 2.
728x90

<원시자료형 primitive data types>

- 자바스크립트에서 원시 타입의 데이터
string, number, bigint, boolean, undefined, symbol, (null)
- 고정된 저장공간을 차지하는 데이터
- 하나의 정보 즉 데이터를 담고 있다.
- 데이터 보관함 한칸에 하나의 데이터만 넣을수있다.!!!

- 원시자료형의 보관함인 변수에는 하나의 데이터만 담는다!

- 값 자체에 대한 변경이 불가능하지만, 변수에 재할당을 하여 변수에 담긴 내용을 변경하는 것은 가능하다.

(기존데이터에 영향X)
let word = "hello world!"
word = "hello codestates!"

 

<참조자료형> reference data type
- 하나의 주제는 있지만 분명 서로 다르고, 여러개의 데이터를 가지고 있다.
- 자바스크립트에서 원시자료형이 아닌 모든것은 참조 자료형이다.
- 배열, 객체, 함수가 대표적이다.
- 참조자료형을 변수에 할당할때는 변수에 값이 아닌 주소를 저장한다. (주소는 heap에 연결되어있다)
- 주소를 복사하기때문에 기존데이터에 영향 O
- 참조자료형의 데이터 자체는 원시자료형이 보관되는 데이터 보관함이 아닌 특별한 데이터 보관함에 저장된다.
이 데이터가 위치한곳(메모리상 주소)을 가리키는 주소가 변수에 저장된다. 
즉, 변수에는 특별한 데이터 보관함을 찾아 갈수있는 주소가 담겨있다
특별한 데이터 보관함을 heap 이라고 부른다.
특별한 데이터 보관함은 동적으로 크기가 변한다.

- 참조 자료형의 ===(strict equality)는 주소값이 같은지를 확인합니다.

- 참조한다: 그 변수의 주소를 참조하여 실제 변수가 있는 장소에 어떤 데이터가 있는지 도착하고 나서야 비로소 읽을수 있기 때문이다.

#원시자료형이 할당될때에는 변수에 값(value)자체가 담기고 (기존데이터에 영향X)
 참조자료형이 할당될때는 보관함의 주소(reference)가 담긴다. (기존데이터에 영향O)

728x90

'부트캠프교육중 > JavaScript' 카테고리의 다른 글

[JavaScript] 스코프  (2) 2023.01.02
[JavaScript] 원시자료형과 참조자료형 문제  (0) 2023.01.02
[JavaScript] for in 과 for of  (0) 2022.12.31
[JavaScript] 객체  (0) 2022.12.31
[JavaScript] 배열 메서드  (0) 2022.12.30