JavaScript의 데이터 타입

JavaScript의 데이터 타입

이 기사는 JavaScript의 데이터 타입에 대해 설명합니다.

YouTube Video

JavaScript의 데이터 타입

JavaScript는 값을 분류하기 위한 데이터 타입을 가지고 있으며, 기본 타입객체 타입으로 크게 나눌 수 있습니다. 데이터 타입은 변수에 어떤 종류의 데이터가 저장되는지를 결정하며, 데이터를 어떻게 조작할 수 있는지에 영향을 줍니다.

기본 타입

기본 타입은 단일 값을 나타내는 단순한 데이터 타입입니다. JavaScript는 다음과 같은 7가지 기본 타입을 가지고 있습니다.

number

1let num = 42;
2let pi = 3.14;
3
4console.log("Value of num:", num);
5console.log("Value of pi:", pi);
  • number는 정수와 부동 소수점 숫자(소수)를 포함한 수치 값을 처리하기 위해 사용되는 타입입니다. 특정 한계를 초과하는 값을 처리할 경우 Infinity 또는 NaN(숫자가 아님) 결과가 나타납니다.
1// Decimal calculations
2console.log(0.1 + 0.2 === 0.3); // false
3console.log(0.1 + 0.2); // 0.30000000000000004
4
5// Calculations with large numbers
6console.log(9007199254740991 + 1); // correct value
7console.log(9007199254740991 + 2); // incorrect value
  • JavaScript에서 숫자는 부동 소수점 숫자로 표현됩니다. 그 결과, 일부 소수(특히 이진수로 정확히 표현할 수 없는 소수)는 정확히 표현되지 않을 수 있습니다.
  • 화폐 값과 같이 정확한 계산이 필요한 경우, 이러한 반올림 오류를 피하는 것이 중요합니다. 예를 들어, BigInt를 사용하거나 toFixed()를 사용하여 소수점 자릿수를 조정할 수 있습니다.

string

1let greeting = "Hello, world!";
2let char = 'A';
3const message = `"${greeting}" in JavaScript`;
4
5console.log("Value of greeting:", greeting);
6console.log("Value of char:", char);
7console.log("Value of message:", message);
  • string은 텍스트를 처리하기 위해 사용되는 데이터 타입으로, 문자들의 연속을 나타냅니다. 텍스트는 작은 따옴표 (') 또는 큰 따옴표 (")로 감싸서 표현합니다. ES6 이후로, 템플릿 리터럴은 백틱()을 사용하여 변수의 삽입을 쉽게 할 수 있게 합니다. 변수를 삽입하려면 ${}` 구문을 사용하십시오.

boolean

1let isAvailable = true;
2let hasError = false;
3
4console.log("Value of isAvailable:", isAvailable);
5console.log("Value of hasError:", hasError);
  • boolean은 논리 값을 나타내며, true 또는 false 둘 중 하나만 가질 수 있습니다. 조건식의 결과나 플래그로 사용됩니다.

null

1let result = null;
2
3console.log("Value of result:", result);
  • null은 '값이 없음'을 명확하게 나타내는 데이터 타입입니다. null은 개발자가 의도적으로 비어 있음을 나타내기 위해 설정합니다.

undefined

1let score;
2let subject = undefined;
3
4console.log("Value of score:", score);     // undefined
5console.log("Value of subject:", subject);
  • undefined는 '정의되지 않음'을 의미하는 데이터 타입입니다. undefined는 변수가 선언되었지만 값이 할당되지 않았을 때 자동으로 할당됩니다.

bigint

1let bigIntValue = 9007199254740991n;
2let anotherBigInt = 123456789012345678901234567890n;
3
4console.log("Value of bigIntValue:", bigIntValue);
5console.log("Value of anotherBigInt:", anotherBigInt);
  • bigint는 큰 정수를 처리하기 위한 데이터 타입입니다. bigintnumber 타입으로 표현할 수 없는 큰 정수를 정확하게 표현할 수 있도록 합니다. bigint 리터럴은 숫자 끝에 n을 추가하여 표현됩니다.
  • bigint는 범위 제한 없이 임의 크기의 정수를 처리하기 위한 타입입니다. 그러나 bigintnumber는 직접적으로 함께 연산할 수 없으므로 주의가 필요합니다.

Symbol

1let sym1 = Symbol('id');
2let sym2 = Symbol('id');
3
4console.log("sym1 === sym2:", sym1 === sym2); // false
  • Symbol은(는) 고유 식별자를 생성하는 데 사용되는 데이터 유형입니다. Symbol()을 사용하여 생성되며 객체의 속성으로 사용할 수 있습니다. 다른 기본 데이터 유형과는 달리 Symbol은 고유한 값을 가지며, 동일한 내용이어도 별개의 Symbol로 취급됩니다.

객체 유형

객체 유형은 여러 값을 저장할 수 있는 데이터 구조입니다. 객체는 키-값 쌍의 모음이며 속성과 메서드를 가질 수 있습니다.

Object

1let person = {
2    name: "John",
3    age: 30,
4    isEmployee: true
5};
6console.log(person.name); // John
  • Object는 다양한 유형의 데이터를 저장할 수 있는 속성(키-값 쌍)의 집합입니다. 객체는 중괄호 {}로 나타내며, 각 속성은 키와 값 사이에 :로 연결됩니다.

Array

1let numbers = [10, 20, 30];
2console.log(numbers[0]); // 10
3console.log(numbers[1]); // 20
4console.log(numbers[2]); // 30
5console.log(numbers[3]); // undefined
  • Array여러 값을 순서대로 저장하는 목록입니다. 배열은 대괄호 []로 나타내며, 값은 쉼표 ,로 구분됩니다. 각 요소는 0부터 시작하는 인덱스를 사용하여 접근합니다.

Function

1function greet(name) {
2    return "Hello, " + name;
3}
4console.log(greet("Alice")); // Hello, Alice
  • 함수는 객체의 한 유형이며 재사용 가능한 코드 블록입니다. function 키워드를 사용하여 함수를 정의할 수 있습니다.

기타 객체 유형

  • JavaScript에는 Date, RegExp, Map, Set과 같은 내장 객체 유형도 있습니다. 이들은 특정 사용 사례에 따라 데이터를 처리합니다.

형 변환

JavaScript에서는 암시적명시적 형 변환이 자주 수행됩니다.

암시적 형 변환

  • JavaScript는 서로 다른 유형 간에 연산을 수행할 때 유형을 자동으로 변환할 수 있습니다.
1let result = 5 + "5"; // "55" (the number is converted to a string)
2
3console.log(result);
  • 이 예제에서 숫자 5는 암시적으로 문자열로 변환되어 문자열 "55"가 됩니다.

명시적 형 변환

  • 개발자는 형 변환을 명시적으로 수행할 수도 있습니다.
1let num = "123";
2let convertedNum = Number(num); // Converts "123" to the number 123
3
4console.log(typeof num);
5console.log(typeof convertedNum);
  • 이 예제에서는 Number() 함수를 사용하여 문자열 "123"을(를) 명시적으로 숫자 123으로 변환합니다.

형 확인

JavaScript에서는 typeof 연산자를 사용하여 변수의 데이터 유형을 확인할 수 있습니다.

 1// Output: The type of 42 is: number
 2console.log('The type of 42             is:', typeof 42);
 3
 4// Output: The type of 42 is: bigint
 5console.log('The type of 42n            is:', typeof 42n);
 6
 7// Output: The type of "hello" is: string
 8console.log('The type of "hello"        is:', typeof "hello");
 9
10// Output: The type of true is: boolean
11console.log('The type of true           is:', typeof true);
12
13// Output: The type of undefined is: undefined
14console.log('The type of undefined      is:', typeof undefined);
15
16// Output: The type of null is: object
17console.log('The type of null           is:', typeof null);
18
19// Output: The type of Symbol() is: symbol
20console.log('The type of Symbol()       is:', typeof Symbol());
21
22// Output: The type of {} is: object
23console.log('The type of {}             is:', typeof {});
24
25// Output: The type of function () {} is: function
26console.log('The type of function () {} is:', typeof function () {});

결론

  • 기본 유형에는 number, string, boolean, null, undefined, symbol이 포함됩니다.
  • 객체 유형에는 Object, Array, Function 등이 포함됩니다.
  • 자동 및 명시적 형 변환이 모두 발생하므로 데이터 유형의 적절한 사용법을 이해하는 것이 중요합니다.

위의 기사를 보면서 Visual Studio Code를 사용해 우리 유튜브 채널에서 함께 따라할 수 있습니다. 유튜브 채널도 확인해 주세요.

YouTube Video