[Day 17 | JS] 데이터 타입

y♡ding·2024년 11월 5일
0

데브코스 TIL

목록 보기
116/163

JavaScript의 데이터 타입은 크게 기본 자료형(Primitive Types)참조 자료형(Reference Types)으로 나눌 수 있습니다. 기본 자료형은 값을 직접 저장하는 타입이고, 참조 자료형은 객체로서 메모리 주소를 참조하는 방식으로 저장합니다. JavaScript의 동적 타입 특성 덕분에 변수에 데이터 타입을 명시적으로 선언하지 않아도 되지만, 각 타입을 이해하는 것은 정확한 코드를 작성하는 데 필수적입니다.


1. 기본 자료형 (Primitive Types)

기본 자료형은 JavaScript에서 불변(immutable) 값을 갖는 단순한 데이터 타입입니다. 기본 자료형은 메모리 상에 값을 그대로 저장하며, 값이 변경되면 새로운 메모리 공간을 할당합니다.

1.1 숫자 (Number)

  • JavaScript에서 숫자는 정수와 실수를 구분하지 않고 Number 타입으로 처리됩니다.
  • NaN: 수가 아님(Not-a-Number)을 나타내며, 잘못된 수학 연산의 결과로 나타납니다.
  • Infinity와 -Infinity: 숫자가 양의 무한대 또는 음의 무한대일 때 나타납니다.
let intNumber = 10;           // 정수
let floatNumber = 3.14;       // 실수
let notANumber = NaN;         // 숫자가 아님
let infinity = Infinity;      // 양의 무한대

1.2 문자열 (String)

  • String 타입은 텍스트 데이터를 나타내며, 큰따옴표("), 작은따옴표('), 백틱(`)으로 정의할 수 있습니다.
  • 문자열은 불변이며, 한번 정의된 문자열은 수정할 수 없습니다.
let greeting = "안녕하세요";          // 큰따옴표
let response = '반갑습니다';         // 작은따옴표
let template = 환영합니다, ${greeting}; // 템플릿 리터럴 (문자열 내 변수 삽입 가능)

1.3 불리언 (Boolean)

  • Boolean 타입은 truefalse 두 가지 값만 가집니다.
  • 주로 조건문에서 참(true)과 거짓(false)을 나타낼 때 사용됩니다.
let isJavaScriptFun = true;
let isJavaScriptHard = false;

1.4 심볼 (Symbol)

  • Symbol 타입은 유일하고 변경 불가능한 값으로, 객체의 속성 키로 사용됩니다.
  • Symbol은 다른 값과 절대 중복되지 않기 때문에 고유한 식별자로 사용할 수 있습니다.
let uniqueID = Symbol("id");

1.5 null과 undefined

  • null: 값이 없음을 명시적으로 나타내는 타입입니다. 변수에 할당된 값이 "비어 있음"을 의미합니다.
  • undefined: 변수가 선언은 되었지만 값이 할당되지 않은 상태를 나타냅니다.
let emptyValue = null;     // 값이 없는 상태
let uninitialized;         // 선언만 된 상태

2. 참조 자료형 (Reference Types)

참조 자료형은 객체(Object)를 기반으로 하며, 메모리 주소를 참조하는 방식으로 데이터를 저장합니다. 참조 자료형은 변수에 값이 아닌 주소를 저장하며, 그 주소를 통해 실제 값을 참조합니다.

2.1 객체 (Object)

  • Object는 다양한 속성의 집합체로, {}로 정의합니다. 속성은 키-값 쌍으로 구성되며, 키에는 기본적으로 문자열 또는 Symbol이 사용됩니다.
  • 객체는 구조가 복잡한 데이터를 저장하거나 메서드를 포함할 수 있습니다(멤버필드/메서드).
let person = {
    name: "홍길동",
    age: 30,
    greet: function() {
        console.log("안녕하세요!");
    }
};

2.2 배열 (Array)

  • Array는 여러 개의 값을 순서대로 저장하는 데이터 구조로, []로 정의됩니다.
  • 배열은 인덱스를 통해 각 요소에 접근하며, 다양한 메서드를 통해 데이터를 조작할 수 있습니다.
let numbers = [1, 2, 3, 4, 5];

2.3 함수 (Function)

  • JavaScript에서 Function은 객체의 일종으로, 함수를 변수에 할당하거나 매개변수로 전달할 수 있습니다.
  • 함수는 코드의 재사용성을 높이고, 특정 작업을 수행하도록 정의할 수 있습니다.
function add(a, b) {
    return a + b;
}

2.4 날짜 (Date)

  • Date 객체는 날짜와 시간을 다루는 기능을 제공합니다.
  • 현재 시간을 가져오거나 날짜를 비교하는 등의 작업을 수행할 수 있습니다.
let today = new Date();

2.5 정규 표현식 (RegExp)

  • RegExp 객체는 문자열에서 특정 패턴을 검색하거나 조작하는 데 사용됩니다.
  • 정규 표현식은 문자열 처리 및 패턴 매칭에 유용합니다.
let pattern = /hello/;

데이터 타입 간의 변환

JavaScript는 동적 타입 언어이므로 자동 형 변환이 일어날 수 있습니다. 예를 들어, 숫자와 문자열이 함께 사용될 경우 JavaScript는 숫자를 문자열로 변환합니다. 그러나 개발자가 명시적으로 변환을 지정하는 것이 좋습니다.

1. 문자열 변환

  • String() 함수를 사용하여 다른 데이터 타입을 문자열로 변환할 수 있습니다.
  let num = 123;
  let str = String(num);   // "123"

2. 숫자 변환

  • Number() 함수를 사용하여 문자열이나 불리언을 숫자로 변환할 수 있습니다.
   let str = "123";
   let num = Number(str);   // 123

3. 불리언 변환

  • Boolean() 함수를 사용하여 값을 불리언으로 변환할 수 있습니다. 빈 문자열, 0, null, undefined, NaNfalse로 평가되고, 그 외 값은 true로 평가됩니다.

     let val = "";
     let bool = Boolean(val); // false

참고 자료

1. MDN 웹 문서 - JavaScript 데이터 타입과 자료 구조

0개의 댓글

관련 채용 정보