WeniVooks

검색

JavaScript 에센셜

타입이란?

1. Type이란?

자바스크립트에서 타입(Type) 은 한국어로 자료형이라고 합니다. 타입은 다양한 데이터를 용도에 맞게 사용하는 데 필요합니다. 예를 들어, 숫자 1234number 타입이고, 문자 ‘jeju’string 타입입니다. 각각의 데이터 타입은 다른 기능을 지원합니다.

1.1 데이터 타입의 중요성

컴퓨터에 저장되는 값은 모두 2진수로 저장되지만, 숫자와 문자의 + 연산은 다른 결과를 낳습니다. 예를 들어, 숫자끼리 더하면 산술 연산을 하지만, 문자끼리 더하면 문자열을 연결합니다. 즉, 타입은 데이터가 어떻게 처리될지를 결정합니다.

let num = 1234; let str = 'jeju'; console.log(num + 1); // 1235 (숫자 더하기) console.log(str + ' island'); // 'jeju island' (문자열 연결)

동적 타입 언어
자바스크립트는 동적 타입 언어로 변수를 선언할 때 타입을 지정하지 않습니다. 변수에 값을 할당할 때 그 값의 타입에 따라 자동으로 타입이 결정됩니다.

1.2 타입 확인하기

타입을 확인하기 위해 자바스크립트에서 typeof 연산자를 사용할 수 있습니다.

let num = 1234; let str = 'jeju'; console.log(typeof num); // 'number' console.log(typeof str); // 'string'

하지만 배열과 같은 자료형은 typeof로 확인할 때 정확하지 않을 수 있습니다. 이는 자바스크립트에서는 배열이 객체로 인식되기 때문입니다.

let arr = [1, 2, 3]; console.log(typeof arr); // 'object' let obj = { name: 'jeju' }; console.log(typeof obj); // 'object'

이렇게 타입을 알기 위한 typeof 연산자가 정확하게 그 타입을 알려주지 않기 때문에 더 정확한 방법이 필요합니다. 이를 위해 Object.prototype.toString.call을 사용합니다.

let arr = [1, 2, 3]; console.log(typeof arr); // 'object' console.log(Object.prototype.toString.call(arr)); // '[object Array]'

타입 체크에 관한 더 자세한 내용은 다음 링크를 참고해주세요

type을 체크하는 여러가지 방법

2. 타입의 종류

자바스크립트의 데이터 타입은 크게 두 가지로 나눌 수 있습니다.

  1. 원시타입 (Primitive types): 가장 기본적인 데이터 타입으로, 단일 값을 저장합니다.
  2. 참조타입 (Reference types): 여러 속성들의 집합을 나타냅니다. 여러 값들을 저장할 수 있습니다.
2.1 원시타입

원시타입은 가장 기본적인 데이터 타입으로, 단일 값을 저장합니다. 원시타입에는 다음과 같은 타입들이 있습니다.

  • 숫자 (Number): 숫자를 나타냅니다.

    let age = 25; // Number 타입
    let age = 25; // Number 타입
  • 문자열 (String): 텍스트를 나타냅니다.

    let name = 'licat'; // String 타입
    let name = 'licat'; // String 타입
  • 불리언 (Boolean): 참(true) 또는 거짓(false)을 나타냅니다.

    let isStudent = true; // Boolean 타입
    let isStudent = true; // Boolean 타입
  • 심볼 (Symbol): 고유한 식별자를 나타냅니다.

    let uniqueId = Symbol('id'); // Symbol 타입
    let uniqueId = Symbol('id'); // Symbol 타입
  • undefined: 변수가 값을 갖고 있지 않음을 나타냅니다.

    let value; // undefined 타입 (값이 할당되지 않음)
    let value; // undefined 타입 (값이 할당되지 않음)
  • null: 값이 없음을 나타냅니다.

    let emptyValue = null; // null 타입 (의도적으로 값이 없음)
    let emptyValue = null; // null 타입 (의도적으로 값이 없음)
2.2 참조타입

참조타입은 여러 속성들의 집합을 나타냅니다. 여러 값들을 저장할 수 있습니다.

  • 객체 (Object): 키-값 쌍을 저장합니다.

    let person = {
      name: 'Bob',
      age: 30,
    }; // Object 타입
    let person = {
      name: 'Bob',
      age: 30,
    }; // Object 타입
  • 배열 (Array): 순서가 있는 리스트를 저장합니다.

    let numbers = [1, 2, 3, 4, 5]; // Array 타입
    let numbers = [1, 2, 3, 4, 5]; // Array 타입
  • 함수 (Function): 실행 가능한 코드를 저장합니다.

    function greet() {
      console.log('Hello, world!');
    } // Function 타입
    function greet() {
      console.log('Hello, world!');
    } // Function 타입

원시타입은 한 번 설정되면 변경되지 않는 단순한 값들을 저장하는 반면, 참조타입은 더 복잡한 데이터 구조를 저장하며, 객체, 배열, 함수 등이 포함됩니다.

3장 원시타입3.2 원시타입과 문자열