안녕하세요 오늘은 자바스크립트의 원시타입 그리고 참조 타입의 차이에 대해서
포스팅해보겠습니다.
JavaScript 변수 타입
자바스크립트의 변수 타입에는 크게 원시타입 그리고 참조타입으로 나뉩니다.
원시타입 변수는 데이터 복사가 일어나면 메모리 공간을 새로 확보해 독립적인 값을 저장하고,
참조타입은 메모리에 직접 접근이 아닌 메모리의 위치(주소)에 간접적인 참조를 통해 메모리에 접근을 합니다.
자바스크립트의 원시(Primitive) 타입
자바스크립트의 원시타입으로는 number, bigint, string, boolean, null, undefined, symbol
총 7개가 존재하며, 이들의 공통접은 object가 아니며 따로 메서드를 가지지 않습니다.
(여기서 symbol은 ES6에서 추가된 원시타입으로, 유일하고 변경 불가능한 값을 생성하는 데 사용됩니다.)
원시타입은 어떻게 작동할까요???
자바스크립트에서 원시타입을 선언하면, 이는 스택에 저장됩니다.
스택이란, LIFO(Last In First Out) 구조를 가진 자료구조입니다. 저장된 원시타입은
식별자를 통해 접근할 수 있고, 원시 데이터와 함께 스택에 저장됩니다.
const one = 10;
const two = 10;
같은 값을 가진 두 개의 변수가 선언 및 할당되었을 때, one 값과 함께 스택에 푸시되고, 그 위에 two 가 값과 함께 스택에 푸시된다. 같은 값이 있건 말건 전혀 상관없는 두 개의 공간이 생성된다.
자바스크립트의 참조 타입
참조타입은 원시 타입을 제외한 타입들을 말합니다.
- 객체(Object)
- 배열(Array)
- 함수(Fuction)
- 날짜(Date)
참조타입은 객체를 가리키는 메모리 주소를 변수에 저장합니다.
이 말은 변수에는 객체의 실제 값이 아닌 해당 객체를 가리키는 위치가 저장이 됩니다.
변수 간에 참조복사가 이루어지며, 두 변수가 같은 객체를 참조하게 됩니다.
'JS' 카테고리의 다른 글
| 자바스크립트의 DOM(Document Object Model) (0) | 2025.01.28 |
|---|---|
| [Javascript] var,let,const 차이와 사용법 (1) | 2025.01.21 |