반응형
JavaScript는 동적 타입(dynamically typed) 언어로, 변수의 타입이 고정되지 않고 런타임에 결정됩니다. JavaScript에서는 다양한 데이터 타입을 표현할 수 있으며, 이를 크게 기본 타입(Primitive Types)과 객체 타입(Object Types)으로 나눌 수 있습니다.
1. JavaScript의 기본 데이터 타입 (Primitive Types)
- 숫자 (Number)
- JavaScript에서는 정수와 부동 소수점 숫자를 모두
number
타입으로 취급합니다.
let integer = 42; // 정수 let float = 3.14; // 부동 소수점 숫자 let negative = -5; // 음수 let exponent = 2e3; // 지수 표기법, 2 x 10^3 = 2000
- JavaScript의 숫자 타입은 64비트 부동 소수점 숫자를 따릅니다.
Infinity
,-Infinity
,NaN
(Not-a-Number) 등의 특별한 값도 가질 수 있습니다.
let infinity = Infinity; let negativeInfinity = -Infinity; let notANumber = NaN;
- JavaScript에서는 정수와 부동 소수점 숫자를 모두
- 문자열 (String)
- 문자열은 텍스트 데이터를 나타내며, 큰따옴표(
"
), 작은따옴표('
), 또는 백틱(```)으로 둘러쌀 수 있습니다. 백틱을 사용하면 템플릿 리터럴을 사용할 수 있습니다.
let singleQuote = 'Hello, World!'; let doubleQuote = "Hello, World!"; let templateLiteral = `Hello, ${name}!`; // 템플릿 리터럴
- 문자열은 불변(immutable)이며, 문자열 연결, 슬라이싱, 대소문자 변환 등의 다양한 메서드를 제공합니다.
let greeting = "Hello"; let name = "Alice"; let combined = greeting + ", " + name + "!"; // 문자열 연결
- 문자열은 텍스트 데이터를 나타내며, 큰따옴표(
- 불리언 (Boolean)
- 불리언 타입은
true
또는false
값을 가질 수 있습니다.
let isJavaScriptFun = true; let isThisCorrect = false;
- 논리 연산 및 조건문에서 사용됩니다.
if (isJavaScriptFun) { console.log("JavaScript is fun!"); }
- 불리언 타입은
null
null
은 명시적으로 값이 없음을 나타내는 값입니다. 의도적으로 변수에 "비어있음"을 할당할 때 사용합니다.
let emptyValue = null;
undefined
undefined
는 변수에 값이 할당되지 않았음을 나타냅니다. 변수 선언 후 초기화되지 않은 경우 기본적으로undefined
가 할당됩니다.
let notInitialized; console.log(notInitialized); // 출력: undefined
- 심볼 (Symbol)
Symbol
은 고유하고 변경 불가능한 값을 생성하는 데 사용됩니다. 주로 객체 속성의 고유한 식별자를 만들 때 사용됩니다.
let uniqueId = Symbol("id");
Symbol
은 객체의 속성 키로 사용될 때 충돌을 방지하기 위해 사용됩니다.
2. JavaScript의 객체 타입 (Object Types)
객체 타입은 JavaScript에서 복잡한 데이터 구조를 나타내기 위해 사용됩니다. 기본적으로 객체는 키-값 쌍의 집합입니다. 객체는 동적으로 속성을 추가, 제거, 수정할 수 있습니다.
- 객체 (Object)
- 객체는 키-값 쌍의 집합입니다. 객체 리터럴
{}
을 사용하여 정의할 수 있습니다.
let person = { name: "Alice", age: 30, isStudent: true };
- 객체의 속성은 점(
.
) 또는 대괄호([]
) 표기법을 사용하여 접근할 수 있습니다.
console.log(person.name); // 출력: Alice console.log(person['age']); // 출력: 30
- 객체는 키-값 쌍의 집합입니다. 객체 리터럴
- 배열 (Array)
- 배열은 숫자 인덱스를 사용하여 요소에 접근할 수 있는 리스트입니다. 배열 리터럴
[]
을 사용하여 정의할 수 있습니다.
let numbers = [1, 2, 3, 4, 5]; let mixedArray = [1, "two", true, null];
- 배열은 객체의 한 형태로, 다양한 메서드를 사용하여 요소를 추가, 제거, 변형할 수 있습니다.
numbers.push(6); // 배열 끝에 요소 추가 let first = numbers[0]; // 첫 번째 요소에 접근
- 배열은 숫자 인덱스를 사용하여 요소에 접근할 수 있는 리스트입니다. 배열 리터럴
- 함수 (Function)
- 함수는 JavaScript에서 일급 객체로 취급됩니다. 함수는 다른 변수와 마찬가지로 변수에 할당될 수 있으며, 다른 함수의 인자로 전달되거나 반환될 수 있습니다.
function greet(name) { return `Hello, ${name}!`; } let sayHello = greet; console.log(sayHello("Alice")); // 출력: Hello, Alice!
- 날짜 (Date)
Date
객체는 날짜와 시간을 처리하기 위한 객체입니다.new Date()
생성자를 사용하여 날짜 객체를 만들 수 있습니다.
let now = new Date(); console.log(now); // 현재 날짜와 시간 출력
- 정규 표현식 (RegExp)
RegExp
객체는 문자열에 대한 정규 표현식 패턴을 정의하고, 검색, 일치, 교체 등의 작업을 수행하는 데 사용됩니다.
let pattern = /hello/i; let testString = "Hello, World!"; console.log(pattern.test(testString)); // 출력: true
- 맵과 셋 (Map and Set)
Map
은 키-값 쌍의 집합으로, 키는 어떤 타입도 될 수 있습니다.Set
은 유일한 값의 집합으로, 중복된 값이 없습니다.
let map = new Map(); map.set("key1", "value1"); map.set("key2", "value2"); console.log(map.get("key1")); // 출력: value1 let set = new Set(); set.add(1); set.add(2); set.add(2); // 중복 값 추가 시 무시됨 console.log(set.has(2)); // 출력: true
3. JavaScript의 특별한 타입
BigInt
BigInt
는 임의 정밀도의 정수를 나타내기 위한 데이터 타입으로, 매우 큰 숫자를 다룰 때 사용됩니다.n
을 숫자 끝에 붙여서 정의할 수 있습니다.
let bigNumber = 1234567890123456789012345678901234567890n;
Symbol
Symbol
은 고유하고 변경 불가능한 원시 값으로, 객체 속성의 고유한 식별자를 나타내는 데 사용됩니다.
let uniqueSymbol = Symbol('unique');
4. 요약
- JavaScript는 다양한 데이터 타입을 지원하며, 각 타입은 특정한 목적에 맞게 설계되었습니다. 변수에 저장된 값의 타입은 런타임에 결정되며, 변수는 서로 다른 타입의 값을 가질 수 있습니다. 이러한 유연성 덕분에 JavaScript는 동적이고 다재다능한 언어로 사용될 수 있습니다.
반응형
'언어 > Javascript' 카테고리의 다른 글
[ JavaScript ] 'BigInt' 사용하기 (0) | 2024.06.09 |
---|---|
[ JavaScript ] 숫자 다루기 (0) | 2024.06.09 |
[ JavaScript ] 시작하기 (0) | 2024.06.09 |
[ JavaScript ] 자바스크립트의 특징 (0) | 2024.06.08 |
[ JavaScript ] 자바스크립트의 역사 (0) | 2024.06.08 |