📘모던 자바스크립트의 데이터 타입
1️⃣ 데이터 타입의 종류
자바스크립트의 데이터 타입은 크게 두 가지로 나뉩니다:
- 기본형(Primitive Type): 값 자체를 저장
- 참조형(Reference Type): 값의 메모리 주소를 저장
2️⃣ 기본형 (Primitive Type)
기본형 데이터 타입은 변수가 값 그 자체를 담고 있으며, 변경 불가능한(Immutable) 속성을 가집니다.
1. Number
숫자 데이터를 표현합니다. 정수와 소수를 모두 포함하며, NaN(숫자가 아님)과 Infinity 같은 특별한 값도 포함합니다.
const age = 25; // 정수
const price = 19.99; // 소수
2. String
문자열 데이터를 표현합니다. 작은따옴표, 큰따옴표, 백틱으로 감쌀 수 있습니다.
const name = "철수";
const greeting = `안녕하세요, ${name}님!`; // 템플릿 리터럴
3. Boolean
참(true)과 거짓(false)만 표현합니다. 조건문에서 주로 사용됩니다.
const isAdult = true;
const hasLicense = false;
4. Symbol
유일한 식별자를 생성합니다. 주로 객체의 키 값으로 사용됩니다.
const uniqueKey = Symbol("id");
5. BigInt
크기가 매우 큰 정수를 표현합니다. 숫자 끝에 n을 붙여 선언합니다.
const bigNumber = 123456789012345678901234567890n;
6. Undefined
변수가 선언되었지만 값이 없을 때 기본적으로 할당되는 타입입니다.
let x; // undefined
7. Null
값이 없음을 명시적으로 나타낼 때 사용합니다.
const empty = null;
3️⃣ 참조형 (Reference Type)
참조형 데이터 타입은 값이 아닌 메모리 주소를 참조합니다. 따라서 참조형 데이터를 복사하면 원본에도 영향을 줄 수 있습니다.
1. Object
키-값 쌍으로 이루어진 데이터 구조입니다.
const user = {
name: "apple",
age: 20,
};
2. Array
순서가 있는 데이터의 집합입니다.
const fruits = ["사과", "바나나", "오렌지"];
3. Function
함수도 객체의 한 종류로, 값처럼 변수에 할당하거나 전달할 수 있습니다.
const greet = () => console.log("안녕하세요!");
4. Map
키-값 구조의 데이터 저장소입니다. 객체와 달리 모든 타입을 키로 사용할 수 있습니다.
const map = new Map();
map.set("key", "value");
5. Set
중복되지 않는 값의 집합입니다.
const set = new Set([1, 2, 2, 3]);
console.log(set); // {1, 2, 3}
4️⃣ 기본형과 참조형의 주요 차이점
특징 기본형 참조형
저장 방식 | 값 자체를 저장 | 메모리 주소를 저장 |
메모리 공간 | 고정된 크기 | 동적으로 크기 조정 가능 |
복사 시 | 값이 복사됨 | 참조된 주소가 복사됨 |
변경 여부 | 값 자체는 변경 불가능 (재할당만 가능) | 내부 값 변경 가능 |
예시: 기본형 복사
let a = 10;
let b = a; // 값 복사
b = 20;
console.log(a); // 10 (원본에 영향 없음)
예시: 참조형 복사
let obj1 = { value: 10 };
let obj2 = obj1; // 주소 복사
obj2.value = 20;
console.log(obj1.value); // 20 (원본에 영향 있음)
5️⃣ 데이터 타입 확인 방법
자바스크립트에서 데이터 타입을 확인하려면 typeof 연산자를 사용합니다.
console.log(typeof 123); // "number"
console.log(typeof "hello"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object" (버그로 인해 이렇게 출력됨)
console.log(typeof Symbol("id")); // "symbol"
console.log(typeof {}); // "object"
6️⃣ 결론
모던 자바스크립트에서 데이터 타입을 이해하는 것은 효율적인 코드를 작성하는 데 중요합니다. 기본형은 값 자체를, 참조형은 메모리 주소를 다룬다는 차이를 기억하세요. 이 차이를 제대로 이해하면, 데이터 처리와 디버깅이 훨씬 쉬워질 것입니다.
'Programming > JavaScript' 카테고리의 다른 글
자바스크립트의 null 병합 연산자 (??) (3) | 2025.01.06 |
---|---|
자바스크립트의 AND(&&)와 OR(||) 연산 이해하기 (6) | 2025.01.06 |
자바스크립트에서 Falsy 값과 Truthy 값, 그리고 불리언 형 변환 (1) | 2025.01.06 |
자바스크립트의 유연한 데이터 타입 (3) | 2025.01.06 |
모던 자바스크립트 (4) | 2025.01.06 |