일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 개발자
- codestates
- 코드스테이스
- Prototype
- codestate
- css
- 프론트엔드
- JavaScript
- 계산기
- 호스트인식
- cta버튼
- 참조자료형
- OOP
- condestates
- 객체지향
- 프로토타입
- css in js
- frontend
- 원시자료형
- Router
- WAI-ARIA
- 코드스테이츠
- 자바스크립트
- Javascript #코드스테이츠
- 회고
- CDD
- html
- self reliance
- cta button
- JS
- Today
- Total
jh.nrtv
JS - 원시 자료형(Primitive type), 참조 자료형(Reference type)은 무엇인가 본문
한줄요약
원시 자료형은 변수를 선언하고 값(value)를 직접 할당하기에 하나의 데이터를 담고있다.
반면 참조 자료형은 원시 자료형이 아닌 모든 자료형으로, 변수를 선언하고 heap의 주소(reference)를 할당하기에 동적으로 변화하는 자료형이다.
예상 꼬리질문
1. 원시 자료형에는 어떤 종류가 있나요?
원시 자료형의 정의에 해당하는 '객체가 아니면서 메소드를 가지지 않는' 여섯 개의 타입이 있다.
string, number, bigint, boolean, undefined, symbol 이 있다.
추가적으로 null은 원시타입과 거의 비슷하게 사용되지만 엄밀히 따지면 객체이다.
2. 주소를 할당한다는 것이 무슨 의미인가요?
참조자료형을 위한 특별한 저장공간을 heap 이라고 하는데 그곳에서 해당 참조 자료형의 데이터를 찾을 수 있는 주소를 할당한다는 의미이다. 따라서 참조 자료형의 데이터가 급격하게 커진다고 하더라도 방대한 데이터가 아닌, 주소값을 다루기 때문에 프로그램을 효율적으로 운영할 수 있다.
3. 참조 자료형에는 어떤 종류가 있나요?
참조 자료형은 원시 자료형이 아닌 모든것에 해당하며 array, object, function 등이 있다.
4. 동적으로 변화한다는 것이 무슨 의미인가요?
데이터의 크기에 따라 사이즈를 늘렸다 줄였다 할 수 있다는 의미이다.
동적으로 크기가 변하는 이유는, 대량의 데이터를 쉽게 다루기 위함이다. 추가 또는 삭제하는 데이터에 따라 데이터 저장 공간의 크기가 달라지는 것이 고정된 데이터 공간을 사용하는 것 보다 효율적이기 때문이다.
5. 원시, 참조 자료형으로 구분한 이유는 무엇인가요?
자바스크립트가 원시 자료형, 참조 자료형으로 구분한 이유는 변수에 넣을 수 있는 데이터의 크기, 저장소의 크기가 제한되기 때문이다.
기술이 진보하면서 처리해야할 데이터의 양도 늘었고, 이 늘어난 데이터를 다루기 위해 구현된 것이 배열, 객체, 함수들이며, 이 타입들은 데이터의 양이 유동적으로 변한다.
즉, 저장소엔 데이터가 위치한 곳(메모리상의 주소)만 저장하고, 값을 불러올 땐 저장소에 저장된 주소를 따라가서 heap 이라는 특별한 데이터 저장소에서 찾는 방식으로 데이터를 처리하게 된다.
데이터는 특별한 저장소에 별도로 관리되고, 우리가 다루는 변수엔 주소만 저장된다. 이 변수를 사용할 땐 그 변수의 주소를 참조하여 실제 변수가 있는 장소에 어떤 데이터가 있는지 도착하고 나서야 비로소 읽을 수 있기 때문에, 참조 자료형(Reference type)으로 불리게 되었다.
'기술면접' 카테고리의 다른 글
Section3 기술면접 (0) | 2023.01.11 |
---|