`JavaScript`의 자료형은 크게 원시 타입과 객체(참조) 타입으로 나뉨
이번 글에서는 원시 타입을 중심으로 정리함

원시 타입(Primitive Type)이란?
- 하나의 값만 저장할 수 있고, 값 자체가 복사되는 타입
즉, 메모리 상에서 독립된 값으로 저장되며, 복사해도 서로 영향을 주지 않음
원시 타입에는 총 7가지가 있음
Number, String, Boolean, Null, Undefined, Symbol, BigInt
1. Number 타입
- 숫자를 표현하는 타입으로, 정수와 실수를 모두 포함
let num1 = 28; // 정수
let num2 = 1.5; // 실수
let num3 = -20; // 음수
// 사칙연산 가능
console.log(num1 + num2);
console.log(num1 - num2);
console.log(num1 * num2);
console.log(num1 / num2);
console.log(num1 % num2); // 나머지 연산 (mod 연산)
// 특수 숫자 값
let inf = Infinity; // 무한대
let mInf = -Infinity; // 음의 무한대
let nan = NaN; // 수치 연산 실패 시 결과값 (Not a Number)
주의할 점은
`NaN`은 "숫자가 아님"을 의미하지만 `Number` 타입임.
typeof NaN; // "number"
2. String 타입
- 문자 데이터를 표현하는 타입
- 작은 따옴표(''), 큰 따옴표(""), 백틱(``) 모두 사용 가능
let myName = "이도서";
let myLocation = "경기";
// 문자열 연결
let introduce = myName + myLocation; // "이도서경기"
// 템플릿 리터럴 (백틱 ` 사용)
let introduceText = `${myName}은 ${myLocation}에 거주합니다`;
console.log(introduceText);
템플릿 리터럴 장점
- 변수나 표현식을 `${ }`안에 바로 넣을 수 있음
- 여러 줄 문자열 작성 가능
let text = `
안녕하세요!
저는 ${myName}이고,
${myLocation}에 살고 있습니다.
`;
3. Boolean 타입
- 논리형(true / false) 값을 저장하는 타입
let isSwitchOn = true;
let isEmpty = false;
조건문에서 자주 사용함
if (isSwitchOn) {
console.log("스위치가 켜졌습니다!");
}
4. Null 타입
- "아무것도 없다"를 명시적으로 표현할 때 사용함
let empty = null;
주의할 점은
- 개발자가 직접 "비워둔다"는 의미로 사용
- 하지만 `typeof null`은 버그 때문에 `object`로 나옴
typeof null; // "object"
5. Undefined 타입
- "값이 아직 정의되지 않음"을 의미함
let none;
console.log(none); // undefined
`Null`이랑 `Undefined`의 차이점?
| 구분 | 의미 | 누가 넣나 | 예시 |
| `null` | "비어 있음" | 개발자가 직접 | `let a = null;` |
| `undefined` | "아직 값 없음" | JS가 자동 할당 | `let a;` |
6. Symbol 타입
- 유일한 식별자를 만들 때 사용되는 타입
const key1 = Symbol('id');
const key2 = Symbol('id');
console.log(key1 === key2); // false (항상 고유함)
활용방법?
- 객체의 숨겨진 프로퍼티 키 만들 때 사용
7. BigInt 타입
- 아주 큰 정수를 다룰 때 사용 (Number 한계를 넘는 수)
const big = 1234567890123456789012345678901234567890n;
console.log(big + 10n);
- `BigInt` 리터럴은 끝에 `n`을 붙임.
마무리 요약
- JS는 동적 타입 언어 → 변수에 어떤 타입이든 들어올 수 있음
- `null`과 `undefined`는 다름 (명시적 vs 자동 할당)
- `Symbol`, `BigInt`는 ES6 이후 추가된 최신 타입
'React > JavaScript 기본' 카테고리의 다른 글
| [JavaScript 기본] 반복문 (0) | 2025.10.29 |
|---|---|
| [JavaScript 기본] 조건문 정리 (0) | 2025.10.29 |
| [JavaScript 기본] 연산자 정리 (0) | 2025.10.29 |
| [JavaScript 기본] 형 변환 (Type Casting) 정리 (0) | 2025.10.28 |
| [JavaScript 기본] 변수와 상수 정리 (0) | 2025.10.27 |