원시형과 참조형 데이터 타입
자바스크립트의 데이터 타입은 크게 원시형(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); // '이몽룡'
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!