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

2025. 5. 29. 12:20·기술/JavaScript

 

자바스크립트에서 다루는 모든 값에는 자료형(타입)이 있습니다.

자료형은 값의 종류와 특징을 정의하고, 컴퓨터가 그 값을 어떻게 처리할지 결정하는 데 사용됩니다.

 

Q. 데이터 타입이 왜 중요할까?
  • 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
  • 값을 참조할 때 한 번에 읽어야 할 메모리 크기를 정하기 위해
  • 메모리에 저장된 2진수를 어떤 데이터로 해석할지 결정하기 위해
  • → 예: 01000001을 문자로 보면 'A', 숫자로 보면 65

 

1. 원시 타입(Primitive Type)

값 자체가 하나로 구성되어 있고, 변하지 않는(immutable) 데이터입니다.

원시 타입은 값 자체를 저장하며, 복사 시 값이 복사됩니다.

타입 설명
number 정수, 소수, NaN, Infinity 등 모든 숫자
string 문자나 문자열 (예: "hello","abc")
boolean 참(true) 또는 거짓(false)
undefined 값이 할당되지 않은 상태의 기본값. 변수 선언만 했을 때 자동 할당됨
null 일부러 값이 없음을 명시할 때 사용
symbol 고유하고 변경 불가능한 값. 주로 객체 속성 키로 사용됨
bigint 아주 큰 정수를 다룰 때 사용 (123456789012345678901234567890n)

 

다른건 익숙해도 심볼이라는 타입이 생소할 수 있습니다.

ℹ️ symbol이란?
const id = Symbol("userID");​
  • Symbol()을 사용해 생성
  • 중복되지 않는 고유한 값을 만들 수 있음
  • 객체의 유일한 키(key)로 주로 사용됨

2. 객체 타입(Object Type)

여러 값을 묶어서 저장할 수 있고, 기능(메서드)도 함께 담을 수 있는 구조입니다.

객체 타입은 참조형이며, 변수에는 값의 주소(참조)가 저장됩니다.

타입 설명
Object 키-값 쌍으로 구성된 데이터 (예: { name: '민수', age: 20 })
Array 순서가 있는 값들의 집합 (예: [1, 2, 3])
Function 코드 블록을 값처럼 다룰 수 있음 (예: function() {})

 

ℹ️  undefined vs null
겉보기에는 같아 보이지만 실제로는 의미나 쓰임새에 차이가 있습니다.
  • undefined: 초기화되지 않은 변수에 자동으로 할당됩니다. 자바스크립트가 자동으로 할당합니다.
  • null:  의도적으로 없음을 표기합니다. 개발자가 명시적으로 설정합니다.

 

Tip: typeof 연산자
typeof 1         // "number"
typeof "hi"      // "string"
typeof true      // "boolean"
typeof undefined // "undefined"
typeof {}        // "object"
typeof []        // "object"
typeof Symbol("id") // "symbol"
typeof Math // "object"  (1)
typeof null // "object"  (2)
typeof alert // "function"  (3)

여기서 주의해야할 포인트!!

  1. Math는 자바스크립트가 제공하는 수학 계산 도구, Math도 사실은 내장된 객체입니다.
  2. 자바스크립트에서 typeof null이 "object"를 반환하는 것은 초기 설계 시 생긴 오류입니다. null은 객체가 아니지만, 호환성 문제로 인해 지금까지도 고쳐지지 않고 유지하고 있습니다.→ 하위 버전과 호환성(=기존 코드 깨지지 않게 하기 위해)
  3. 자바스크립트에서 함수도 사실은 특별한 종류의 객체 입니다.(사실 "function"이라는 타입은 따로 존재하지 않지만, typeof가 특별히 구분해서 알려줍니다.)

 

 

저작자표시 비영리 변경금지 (새창열림)

'기술 > JavaScript' 카테고리의 다른 글

자바스크립트 연산자(Operators)  (1) 2025.06.08
자바스크립트의 '동적 타이핑'과 '형 변환'에 대하여  (1) 2025.05.29
변수 선언 방식과 var, let, const 의 차이를 알아보자  (2) 2025.05.28
변수란 무엇인가?  (0) 2025.05.28
자바스크립트란?  (1) 2025.05.28
'기술/JavaScript' 카테고리의 다른 글
  • 자바스크립트 연산자(Operators)
  • 자바스크립트의 '동적 타이핑'과 '형 변환'에 대하여
  • 변수 선언 방식과 var, let, const 의 차이를 알아보자
  • 변수란 무엇인가?
빔네모
빔네모
console.log("빔네모")
  • 빔네모
    bimnemo("개발")
    빔네모
  • 전체
    오늘
    어제
    • 기록 (162) N
      • 기술 (49) N
        • JavaScript (8)
        • TypeScript (9)
        • React.js (13) N
        • Next.js (0)
        • 라이브러리,도구 (4)
        • HTML,CSS (4)
        • CS (5)
        • BE (4)
        • 테스트 (2) N
      • 개발 (99)
        • 프로젝트 (0)
        • 트러블슈팅 (5)
        • 알고리즘(코딩테스트) (94)
      • 정보 (4)
      • 취미 (10) N
        • 독서기록 (10) N
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
빔네모
자바스크립트의 데이터 타입
상단으로

티스토리툴바