본문 바로가기
WebDev/JavaScript

[기초]JavaScript 자료형(Data Type)

by Naerrow 2024. 8. 22.

자바스크립트(JavaScript)는 동적이고 느슨한 타입의 언어로, 다양한 자료형을 지원합니다. 자료형은 크게 원시 타입(Primitive Type)과 참조 타입(Reference Type)으로 구분됩니다.

 

원시 타입 (Primitive Type)

원시 타입은 하나의 값을 담는 단순한 데이터 유형입니다. 자바스크립트는 7가지 원시 타입을 제공합니다.

 

1. 숫자(Number)

  • 정수와 부동 소수점을 포함한 숫자를 나타냅니다.
  • 예시: 42, 3.14
  • 특별한 숫자 값: Infinity, -Infinity, NaN (Not-a-Number)
let age = 25;
let pi = 3.14;
let inf = Infinity;
let notANumber = NaN;

 

 

2. 문자열(String)

  • 텍스트 데이터를 나타냅니다. 큰따옴표("), 작은따옴표('), 백틱(```)으로 감쌉니다.
  • 예시: "Hello, World!", 'JavaScript', `Template Literal`
let greeting = "Hello, World!";
let language = 'JavaScript';
let template = `Template Literal`;

 

 

3. 불리언(Boolean)

  • true 또는 false 두 가지 값만 가질 수 있습니다.
  • 예시: true, false
let isJavaScriptFun = true;
let isWinter = false;

 

 

4. null

  • 값이 없음을 의도적으로 나타내는 값.
  • 예시: null
let emptyValue = null;

 

 

5. undefined

  • 어떤 변수에 값이 할당되지 않았을 때 자동으로 부여되는 값.
  • 예시: undefined
let notAssigned;

 

 

6. 심볼(Symbol)

  • 고유하고 변경 불가능한 원시 값을 나타내며, 주로 객체 속성의 키로 사용됩니다.
  • 예시: Symbol('description')
let uniqueId = Symbol('id');

 

 

7. 빅인트(BigInt)

  • 안전한 정수 범위(±2^53-1) 이상의 큰 정수를 나타냅니다. 정수 뒤에 n을 붙여서 사용합니다.
  • 예시: 1234567890123456789012345678901234567890n
let largeNumber = 1234567890123456789012345678901234567890n;

 


 

참조 타입 (Reference Type)

참조 타입은 객체를 통해 값을 참조하는 복합 데이터 유형입니다. 자바스크립트에서 객체는 키-값 쌍의 컬렉션이거나 복잡한 엔티티입니다.

 

1. 객체(Object)

  • 키-값 쌍의 컬렉션을 나타내며, 중괄호 {}로 정의합니다.
let person = {
  name: "John",
  age: 30,
  isEmployed: true
};

 

 

2. 배열(Array)

  • 순서가 있는 값의 집합을 나타내며, 대괄호 []로 정의합니다.
let numbers = [1, 2, 3, 4, 5];
let fruits = ["Apple", "Banana", "Cherry"];

 

 

3. 함수(Function)

  • 재사용 가능한 코드 블록을 나타내며, function 키워드 또는 화살표 함수 =>로 정의합니다.
function greet(name) {
  return `Hello, ${name}!`;
}

let add = (a, b) => a + b;

 

 

4. 날짜(Date)

  • 날짜와 시간을 나타내는 내장 객체입니다.
let now = new Date();

 

 

5. 정규 표현식(RegExp)

  • 패턴 매칭에 사용되는 정규 표현식을 나타내는 내장 객체입니다.
let pattern = /ab+c/;

 

 

6. 지도(Map)

  • 키-값 쌍의 컬렉션을 나타내며, 객체와 달리 키는 모든 값을 가질 수 있습니다.
let map = new Map();
map.set('key1', 'value1');
map.set('key2', 'value2');

 

 

7. 집합(Set)

  • 중복되지 않은 값들의 집합을 나타냅니다.
let set = new Set();
set.add(1);
set.add(2);
set.add(2); // 중복된 값은 추가되지 않음

 


동적 타이핑

자바스크립트는 동적 타이핑을 지원하므로, 변수의 타입은 할당된 값에 따라 자동으로 결정됩니다. 동일한 변수에 다른 타입의 값을 할당할 수 있습니다.

 

타입 변환

자바스크립트는 명시적 타입 변환과 암시적 타입 변환을 지원합니다.

 

명시적 타입 변환

  • 숫자 변환: Number(), parseInt(), parseFloat()
  • 문자열 변환: String(), toString()
  • 불리언 변환: Boolean()
let num = Number("42");       // 42
let str = String(42);         // "42"
let bool = Boolean(1);        // true

 

암시적 타입 변환

  • 문자열 결합: 숫자 + 문자열 = 문자열
  • 불리언 콘텍스트: if, while 등의 조건문에서
let result = 1 + "2";          // "12" (숫자 1이 문자열 "1"로 변환)
if ("") console.log("Nope");   // ""는 false로 변환, 조건문은 실행되지 않음

 


 

결론

자바스크립트의 다양한 자료형과 그 특성을 이해하면 보다 효율적이고 오류 없는 코드를 작성할 수 있습니다. 원시 타입과 참조 타입을 구분하고, 타입 변환의 원리를 이해하는 것이 중요합니다.