본문 바로가기
Programming/JavaScript

모던 자바스크립트의 데이터 타입

by RuntimeSimple 2025. 1. 6.

📘모던 자바스크립트의 데이터 타입


1️⃣ 데이터 타입의 종류

자바스크립트의 데이터 타입은 크게 두 가지로 나뉩니다:

  1. 기본형(Primitive Type): 값 자체를 저장
  2. 참조형(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️⃣ 결론

모던 자바스크립트에서 데이터 타입을 이해하는 것은 효율적인 코드를 작성하는 데 중요합니다. 기본형은 값 자체를, 참조형은 메모리 주소를 다룬다는 차이를 기억하세요. 이 차이를 제대로 이해하면, 데이터 처리와 디버깅이 훨씬 쉬워질 것입니다.