본문 바로가기

바닐라 코드/Java Script

6. 자바스크립트의 자료형

자료형이란

자료형이란 숫자, 문자 등 데이터의 종류를 뜻한다. 각 데이터가 메모리에서 어떻게 저장되고 처리 될 지를 결정하는 데 중요한 역할을 한다.


자료형이 중요한 이유

  1. 메모리 공간을 효율적으로 사용
    • 컴퓨터 메모리는 제한적이므로, 데이터를 효율적으로 저장하기 위해 자료형을 기준으로 사용할 메모리 공간의 크기를 결정한다.
    • 컴퓨터는 모든 데이터를 1과 0으로 저장하며, 자료형이 데이터를 어떻게 해석할지를 알려준다.
  2. 특정 자료형에만 동작하는 기능
    • 자바스크립트는 자료형에 따라 사용할 수 있는 기능이 다르다.
      • 숫자 자료형에는 수학 연산을, 문자열에는 텍스트 조작을 위한 기능을 사용할 수 있다.
      • 배열과 객체는 각각 고유한 메서드가 제공된다.

자료형 요약

// 기본 자료형 (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은 값이 없다는 것을 의도적으로 표현.

특수한 경우들

  1. typeof null은 "object"를 반환한다. 이는 자바스크립트 초창기 설계 오류로, 하위 호환성을 유지하기 위해 수정되지 않았다.
  2. typeof alert는 "function"을 반환한다. 하지만 함수는 객체형 자료형에 속한다.

요약

  1. 기본 자료형
    • 단일 값을 저장하며, 불변성을 가진다.
  2. 참조 자료형
    • 값이 아닌 메모리 주소를 저장한다.
  3. 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