자료형이란
자료형이란 숫자, 문자 등 데이터의 종류를 뜻한다. 각 데이터가 메모리에서 어떻게 저장되고 처리 될 지를 결정하는 데 중요한 역할을 한다.
자료형이 중요한 이유
- 메모리 공간을 효율적으로 사용
- 컴퓨터 메모리는 제한적이므로, 데이터를 효율적으로 저장하기 위해 자료형을 기준으로 사용할 메모리 공간의 크기를 결정한다.
- 컴퓨터는 모든 데이터를 1과 0으로 저장하며, 자료형이 데이터를 어떻게 해석할지를 알려준다.
- 특정 자료형에만 동작하는 기능
- 자바스크립트는 자료형에 따라 사용할 수 있는 기능이 다르다.
- 숫자 자료형에는 수학 연산을, 문자열에는 텍스트 조작을 위한 기능을 사용할 수 있다.
- 배열과 객체는 각각 고유한 메서드가 제공된다.
- 자바스크립트는 자료형에 따라 사용할 수 있는 기능이 다르다.
자료형 요약
// 기본 자료형 (Primitive Types)
let age = 30; // 숫자(Number)
let name = "Alice"; // 문자열(String)
let isActive = true; // 불리언(Boolean)
let notAssigned; // 정의되지 않음(Undefined)
let emptyValue = null; // 의도적으로 비어 있음(Null)
let uniqueID = Symbol("id"); // 고유한 식별자(Symbol)
// 참조 자료형 (Reference Types)
let person = { // 객체(Object)
name: "Alice",
age: 25
};
let colors = ["red", "green"]; // 배열(Array)
function greet(name) { // 함수(Function)
return `Hello, ${name}`;
}
1. 기본 자료형 (Primitive Types)
기본 자료형은 단일 값을 저장하며, 값이 변경되지 않는 불변성(immutable)을 가진다. 값 자체가 변수에 저장된다.
"불변성"과 변수 재할당의 차이
- **불변성(immutable)**은 변수에 저장된 값이 변하지 않는다는 뜻이 아니라, 저장된 값을 직접 변경할 수 없다는 뜻이다.
변수는 언제든 다른 값을 재할당할 수 있다. 하지만 기존에 저장된 값 자체를 변경할 수는 없다.
- 불변성: 숫자 10은 마치 건물처럼 바뀌지 않는다.
- 변수: x는 그 건물로 가는 표지판이다. 표지판은 다른 건물(값)을 가리킬 수 있지만, 건물 자체를 바꿀 수는 없다.
1-1. Number
숫자 데이터를 나타내며, 정수와 소수를 포함한다.
let age = 25; // 정수
let pi = 3.14; // 소수
1-2. String
문자 데이터를 나타내며, 작은따옴표(')나 큰따옴표(")로 감싼다.
let greeting = "Hello, World!";
1-3. Boolean
참(true) 또는 거짓(false) 중 하나의 값을 가진다.
let isLoggedIn = true; // 로그인 상태
let hasPermission = false; // 권한 없음
1-4. Undefined
값이 할당되지 않은 변수의 초기 상태다.
let notAssigned; // 값이 없으므로 undefined
1-5. Null
의도적으로 값이 없음을 나타내는 값이다. undefined와는 다르다.
let empty = null; // 값이 '없음'을 명시적으로 설정
1-6. Symbol
Symbol은 고유한 식별자를 생성할 때 사용한다. 주로 객체의 키로 사용된다.
let id = Symbol("uniqueID");
2. 참조 자료형 (Reference Types)
참조 자료형은 값 대신 메모리 주소를 저장한다. 변수는 데이터를 직접 저장하는 대신, 데이터가 저장된 메모리의 위치를 참조한다.
2-1. Object
키-값 쌍으로 데이터를 저장하는 구조다.
let person = {
name: "Alice", // 키: name, 값: "Alice"
age: 30 // 키: age, 값: 30
};
2-2. Array
값을 순서대로 저장할 수 있는 리스트다. 배열 안에는 다양한 자료형을 혼합해서 저장할 수 있다.
let fruits = ["Apple", "Banana", "Cherry"]; // 문자열로 이루어진 배열
2-3. Function
특정 작업을 수행하는 코드 블록이며, 참조 자료형에 속한다.
function greet(name) {
return `Hello, ${name}`;
}
3. 자료형 확인
typeof 연산자를 사용하면 변수의 자료형을 확인할 수 있다.
console.log(typeof 42); // "number"
console.log(typeof "Hello"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof Symbol("id")); // "symbol"
console.log(typeof null); // "object" (특수한 경우)
console.log(typeof { key: "value" }); // "object"
console.log(typeof greet); // "function"
null과 undefined의 차이
- undefined는 값이 정의되지 않은 상태를 의미.
- null은 값이 없다는 것을 의도적으로 표현.
특수한 경우들
- typeof null은 "object"를 반환한다. 이는 자바스크립트 초창기 설계 오류로, 하위 호환성을 유지하기 위해 수정되지 않았다.
- typeof alert는 "function"을 반환한다. 하지만 함수는 객체형 자료형에 속한다.
요약
- 기본 자료형
- 단일 값을 저장하며, 불변성을 가진다.
- 참조 자료형
- 값이 아닌 메모리 주소를 저장한다.
- typeof 연산자
- 변수의 자료형을 확인한다.
'바닐라 코드 > Java Script' 카테고리의 다른 글
8. 브라우저 알림창 띄우기 (0) | 2024.12.10 |
---|---|
7. 자료형 변환 (1) | 2024.12.09 |
5. 변수와 상수 (3) | 2024.12.05 |
4. use strict (1) | 2024.12.04 |
3. 문과 식 (2) | 2024.12.03 |