JavaScript Data Types
JavaScript Data Types: 다양한 데이터 타입의 이해와 활용
JavaScript는 동적 타이핑(dynamic typing) 언어로, 여러 가지 데이터 타입을 지원합니다. 각 데이터 타입은 서로 다른 특성과 사용 용도를 가지며, 이를 이해하면 변수를 적절하게 활용하고 코드의 효율성을 높일 수 있습니다. 이 가이드는 JavaScript의 데이터 타입을 체계적으로 살펴보고, 각 데이터 타입을 실제로 어떻게 활용할 수 있는지를 설명합니다.
1. 데이터 타입의 기본 개념
JavaScript에서 데이터 타입은 두 가지 범주로 나눌 수 있습니다: **원시 데이터 타입(Primitive Data Types)**과 객체 데이터 타입(Object Data Type).
1.1. 원시 데이터 타입(Primitive Data Types)
원시 데이터 타입은 변경 불가능한(immutable) 데이터로, 주로 기본적인 값을 표현합니다. JavaScript의 원시 데이터 타입은 다음과 같습니다:
- String: 문자열 데이터
- Number: 숫자 데이터
- Boolean: 참(true) 또는 거짓(false) 값
- Undefined: 값이 할당되지 않은 상태
- Null: 의도적으로 "없음"을 나타내는 데이터
- Symbol: 고유하고 변경 불가능한 값 (ES6에서 도입됨)
- BigInt: 임의의 정수를 나타내는 데이터 타입 (ES11에서 도입됨)
1.2. 객체 데이터 타입(Object Data Type)
객체 데이터 타입은 여러 값을 하나의 단위로 묶어 표현할 수 있는 데이터 구조입니다. 객체는 프로퍼티와 메서드를 포함할 수 있습니다.
2. 원시 데이터 타입
2.1. String
문자열 데이터는 텍스트 정보를 나타내며, 작은 따옴표('
), 큰 따옴표("
), 또는 백틱(```)으로 감쌀 수 있습니다.
const greeting = "Hello, World!";
console.log(greeting); // 출력: Hello, World!
2.2. Number
숫자 데이터는 정수와 부동 소수점 숫자를 포함합니다. JavaScript에서는 모든 숫자가 부동 소수점으로 저장됩니다.
const age = 25;
const price = 19.99;
console.log(age); // 출력: 25
console.log(price); // 출력: 19.99
2.3. Boolean
Boolean 데이터 타입은 두 가지 값인 true
또는 false
를 가질 수 있습니다. 주로 조건문에서 사용됩니다.
const isAdult = true;
const hasPermission = false;
console.log(isAdult); // 출력: true
2.4. Undefined
Undefined는 변수에 값이 할당되지 않은 상태를 나타냅니다.
let uninitializedVariable;
console.log(uninitializedVariable); // 출력: undefined
2.5. Null
Null은 의도적으로 "없음"을 나타내는 데이터로, 어떤 값도 존재하지 않음을 표현합니다.
const emptyValue = null;
console.log(emptyValue); // 출력: null
2.6. Symbol
Symbol은 고유하고 변경 불가능한 값을 생성하는 데 사용됩니다. 주로 객체의 프로퍼티 키로 사용됩니다.
const uniqueKey = Symbol('description');
const obj = {
[uniqueKey]: "This is a unique value"
};
console.log(obj[uniqueKey]); // 출력: This is a unique value
2.7. BigInt
BigInt는 임의의 정수를 나타낼 수 있는 데이터 타입으로, 큰 숫자를 다룰 때 유용합니다. 숫자 뒤에 n
을 붙여서 사용합니다.
const bigNumber = 123456789012345678901234567890n;
console.log(bigNumber); // 출력: 123456789012345678901234567890n
3. 객체 데이터 타입
객체는 키-값 쌍으로 구성된 데이터 구조로, 다양한 형태의 데이터를 저장하고 조작할 수 있습니다.
3.1. 객체(Object)
객체는 여러 프로퍼티와 메서드를 포함할 수 있으며, 중괄호 {}
를 사용하여 정의합니다.
const person = {
name: "Alice",
age: 30,
greet() {
console.log(`Hello, my name is ${this.name}`);
}
};
console.log(person.name); // 출력: Alice
person.greet(); // 출력: Hello, my name is Alice
3.2. 배열(Array)
배열은 순서가 있는 데이터의 리스트로, 객체의 일종입니다. 대괄호 []
를 사용하여 정의합니다.
const fruits = ["apple", "banana", "cherry"];
console.log(fruits[1]); // 출력: banana
3.3. 함수(Function)
함수도 객체로 취급되며, 객체의 프로퍼티로 할당하거나 다른 함수의 인자로 전달할 수 있습니다.
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet("Bob")); // 출력: Hello, Bob!
4. 데이터 타입 확인
JavaScript에서는 변수의 데이터 타입을 확인할 수 있는 여러 방법이 있습니다.
4.1. typeof
연산자
typeof
연산자를 사용하여 변수의 데이터 타입을 확인할 수 있습니다.
console.log(typeof "Hello"); // 출력: string
console.log(typeof 42); // 출력: number
console.log(typeof true); // 출력: boolean
console.log(typeof null); // 출력: object
console.log(typeof undefined); // 출력: undefined
console.log(typeof Symbol()); // 출력: symbol
console.log(typeof BigInt(123)); // 출력: bigint
4.2. Array.isArray()
배열인지 확인할 때 사용할 수 있는 메서드입니다.
const arr = [1, 2, 3];
console.log(Array.isArray(arr)); // 출력: true
console.log(Array.isArray({})); // 출력: false
5. 요약
- 원시 데이터 타입: String, Number, Boolean, Undefined, Null, Symbol, BigInt.
- 객체 데이터 타입: 객체, 배열, 함수.
- 데이터 타입 확인:
typeof
연산자와Array.isArray()
메서드를 사용하여 변수의 데이터 타입을 확인할 수 있습니다.
JavaScript의 다양한 데이터 타입을 이해하고 활용하면, 더 나은 웹 개발자로 성장할 수 있습니다. 이 가이드를 바탕으로 데이터 타입을 익히고, 실무에 적용해보세요!