본문으로 건너뛰기

원시형과 참조형 데이터 타입

원시형과 참조형 데이터 타입

자바스크립트의 데이터 타입은 크게 원시형(primitive)참조형(reference)으로 나뉘어요.

이 두 가지 타입은 값을 어떻게 저장하고 참조하는지 다릅니다.


1. 원시형 (Primitive Type)

자바스크립트에서의 원시형 데이터 타입은 다음과 같습니다.

  • Number: 숫자 (예: 5, 3.14)

  • String: 문자열 (예: "Hello")

  • Boolean: 참거짓 값 (true 또는 false)

  • Undefined: 값이 할당되지 않은 변수 (undefined)

  • Null: 값이 없음을 의미 (null)

  • BigInt: 큰 정수 (예: 1234567890123456789012345678901234567890n)

  • Symbol: 고유하고 변경 불가능한 값


원시형 데이터 특징:

  • 원시형 데이터는 한번 생성되면 그 값이 변하지 않습니다.

  • 다른 변수에 값을 할당할 때, 값 자체를 복사합니다.

원시형 데이터 복사
let a = 10;
let b = a; // 값을 복사하여 변수 b에 할당
b = 20;

console.log(a); // 10
console.log(b); // 20

2. 참조형 (Reference Type):

참조형 타입은 변수에 메모리(컴퓨터의 기억 공간)의 주소를 저장합니다.

간단히 표현하면 실제 값이 아닌, 컴퓨터 내 데이터가 위치한 "주소"를 변수에 저장하는 것입니다.

자바스크립트에서의 주요 참조형 타입은 아래와 같습니다.

  • Object: 객체

  • Array: 배열

  • Function: 함수


참조형 데이터 특징:

  • 참조형 데이터를 다른 변수에 할당할 때, 해당 변수에는 데이터의 값이 아닌 **데이터가 저장된 위치 (메모리 주소)**가 복사됩니다.

  • 값을 할당한 변수와 값을 할당받은 변수는 모두 동일한 메모리 위치(데이터가 저장된 주소)를 가리킵니다.

참조형 데이터 복사
let obj1 = { name: '홍길동' };
let obj2 = obj1; // 참조 복사, obj2에 데이터가 저장된 주소를 복사함

obj2.name = '이몽룡';

// obj1과 obj2 모두 동일한 주소를 가리키고 있기 때문에 obj2의 name을 변경하면 obj1의 name도 변경
console.log(obj1.name); // '이몽룡'
console.log(obj2.name); // '이몽룡'