자바스크립트에서 데이터 타입은 무엇이 있나요?
_____A1: 자바스크립트의 기본 데이터 타입(Primitive Types)에는 다음이 있습니다.
- Number: 숫자 값을 나타냅니다. (예: 42, 3.14)
- String: 문자열을 나타냅니다. (예: "hello", 'world')
- Boolean: true 또는 false 값을 가집니다.
- Null: 의도적으로 값이 없음을 나타냅니다.
- Undefined: 값이 할당되지 않은 변수의 기본 값입니다.
- Symbol: 고유한 식별자를 생성할 때 사용합니다. (ES6부터 도입됨)
- BigInt: 아주 큰 정수를 나타낼 때 사용합니다. (ES2020 도입)
Q2: 객체(Object) 데이터 타입은 기본 타입인가요?
A2: 아니요, 객체는 기본 데이터 타입이 아닌 참조형 데이터 타입입니다. 객체는 여러 값이나 복잡한 데이터를 저장할 수 있고, 배열, 함수, 날짜 등도 객체의 일종입니다.
Q3: 배열(Array)은 데이터 타입인가요?
A3: 배열은 자바스크립트의 내장 객체의 한 형태로, 객체 타입에 속합니다. 배열 안에는 여러 데이터를 순차적으로 저장할 수 있습니다.
Q4: 함수(Function)도 데이터 타입인가요?
A4: 함수도 객체 타입으로 분류되며, 특별한 호출 가능한 객체입니다. 자바스크립트에서는 함수도 일급 객체로 취급되어 변수에 할당하거나 인수로 전달할 수 있습니다.
Q5: 데이터 타입을 확인하는 방법은?
A5: `typeof` 연산자를 사용하여 데이터 타입을 확인할 수 있습니다. 예:
```javascript
typeof 42; // "number"
typeof "hello"; // "string"
typeof true; // "boolean"
typeof null; // "object" (자바스크립트의 역사적 버그)
typeof Symbol(); // "symbol"
typeof 10n; // "bigint"
typeof {}; // "object"
typeof function(){}; // "function"
```
Q6: null은 왜 typeof 결과가 "object"인가요?
A6: `typeof null`이 "object"인 것은 자바스크립트 초기 버전의 설계상의 결함 때문에 발생한 역사적인 문제입니다. null은 사실 원시값이며 의도적으로 ‘값이 없음’을 나타냅니다.
Q7: 새로운 타입 BigInt란 무엇인가요?
A7: BigInt는 자바스크립트에서 아주 큰 정수를 안전하게 표현하기 위해 도입된 타입입니다. 숫자(Number)가 표현할 수 있는 최대 정수 범위를 넘는 경우에 사용합니다. 예를 들면:
```javascript
let big = 9007199254740991n; // 숫자 뒤에 n을 붙여서 BigInt 생성
```
Q8: 타입 변환(Type Coercion)이란 무엇인가요?
A8: 자바스크립트는 동적 타입 언어로, 한 타입의 값을 자동으로 다른 타입으로 변환하는 타입 변환이 빈번하게 일어납니다. 예를 들어, 문자열과 숫자를 더하면 숫자가 문자열로 변환됩니다.
Q9: 데이터 타입 구분이 중요한 이유는 무엇인가요?
A9: 데이터 타입에 따라 연산 결과나 함수 동작 방식이 달라지므로 타입을 정확히 이해해야 코드를 예측 가능하고 안전하게 작성할 수 있습니다.
---
요약: 자바스크립트 데이터 타입은 크게 원시 타입(숫자, 문자열, 불리언, null, undefined, 심볼, 빅인트)과 객체 타입(객체, 배열, 함수 등)으로 나뉩니다. 타입 확인에는 typeof를 사용하며, 자바스크립트 특성상 타입 변환이 자동으로 일어나기도 합니다.
자바스크립트에서 사용되는 데이터 타입은 크게 기본 타입(primitive types)과 객체 타입(object types)으로 나눌 수 있습니다.
아래에서 각각의 데이터 타입에 대해 자세히 설명하겠습니다.
1. 기본 타입 (Primitive Types)기본 타입은 불변(immutable)이며, 각각의 값이 독립적으로 존재합니다.
자바스크립트의 기본 타입은 다음과 같습니다:- Number : 숫자를 나타내며, 정수와 부동소수점 숫자를 모두 포함합니다.
예를 들어, `42`, `3.14`, `-7` 등이 있습니다.
자바스크립트는 특별한 숫자 값인 `NaN` (Not-a-Number)과 `Infinity`, `-Infinity`도 지원합니다.
- String : 문자열을 나타내며, 텍스트 데이터를 표현하는 데 사용됩니다.
문자열은 작은따옴표(') 또는 큰따옴표(")로 감싸서 정의할 수 있습니다.
예를 들어, `"Hello, World!"`, `'JavaScript'` 등이 있습니다.
- Boolean : 논리적 값을 나타내며, `true` 또는 `false`의 두 가지 값만 가질 수 있습니다.
조건문이나 반복문에서 주로 사용됩니다.
- Undefined : 변수가 선언되었지만 값이 할당되지 않은 상태를 나타냅니다.
자바스크립트에서 변수를 선언하고 값을 할당하지 않으면 자동으로 `undefined`로 초기화됩니다.
- Null : 의도적으로 "값이 없음"을 나타내는 특별한 타입입니다.
변수가 null로 설정되면, 이는 해당 변수에 어떤 객체나 값이 없음을 의미합니다.
- Symbol : ES6(ECMAScript 201
5)에서 도입된 새로운 데이터 타입으로, 고유하고 변경 불가능한 값을 생성하는 데 사용됩니다.
주로 객체의 프로퍼티 키로 사용되어, 충돌을 방지하는 데 유용합니다.
- BigInt : ES11(ECMAScript 2020)에서 도입된 타입으로, 아주 큰 정수를 표현할 수 있습니다.
일반적인 Number 타입이 안전하게 표현할 수 있는 정수의 범위를 넘어서는 경우에 사용됩니다.
BigInt는 `n` 접미사를 붙여서 생성합니다.
예를 들어, `123456789012345678901234567890n`과 같이 사용할 수 있습니다.
2. 객체 타입 (Object Types)객체 타입은 기본 타입과 달리 mutable(변경 가능)하며, 여러 값을 하나의 단위로 묶을 수 있습니다.
자바스크립트에서 객체는 다음과 같은 형태로 존재합니다:- Object : 자바스크립트의 기본 객체 타입으로, 키-값 쌍으로 구성된 데이터를 저장합니다.
객체는 중괄호 `{}`로 정의하며, 예를 들어 `{ name: "Alice", age: 25 }`와 같이 사용할 수 있습니다.
- Array : 객체의 특별한 형태로, 순서가 있는 값의 집합을 나타냅니다.
배열은 대괄호 `[]`로 정의하며, 예를 들어 `[1, 2, 3, 4]`와 같은 형태로 사용할 수 있습니다.
배열은 다양한 데이터 타입을 혼합하여 저장할 수 있습니다.
- Function : 자바스크립트에서 함수도 객체로 취급됩니다.
함수는 호출 가능한 객체로, 특정 작업을 수행하는 코드 블록을 정의합니다.
예를 들어, `function add(a, b) { return a + b; }`와 같이 정의할 수 있습니다.
- Date : 날짜와 시간을 다루기 위한 객체입니다.
`new Date()`를 사용하여 현재 날짜와 시간을 가져오거나, 특정 날짜를 생성할 수 있습니다.
- RegExp : 정규 표현식을 나타내는 객체로, 문자열 검색 및 패턴 매칭에 사용됩니다.
예를 들어, `/abc/`와 같은 형태로 정의할 수 있습니다.
- Error : 오류를 나타내는 객체로, 자바스크립트에서 발생하는 다양한 오류를 처리하는 데 사용됩니다.
예를 들어, `new Error("Something went wrong")`와 같이 사용할 수 있습니다.
데이터 타입 확인자바스크립트에서는 `typeof` 연산자를 사용하여 변수의 데이터 타입을 확인할 수 있습니다.
예를 들어:```javascriptlet num = 42;console.log(typeof num); // "number"let str = "Hello";console.log(typeof str); // "string"let isTrue = true;console.log(typeof isTrue); // "boolean"let obj = { name: "Alice" };console.log(typeof obj); // "object"let arr = [1, 2, 3];console.log(typeof arr); // "object" (배열도 객체로 취급됨)let func = function() {};console.log(typeof func); // "function"let und;console.log(typeof und); // "undefined"let n = null;console.log(typeof n); // "object" (null은 객체로 잘못 분류됨)let sym = Symbol("description");console.log(typeof sym); // "symbol"let bigIntNum = 1234567890123456789012345678901234567890n;console.log(typeof bigIntNum); // "bigint"``` 결론자바스크립트는 다양한 데이터 타입을 제공하여 개발자가 필요에 따라 적절한 타입을 선택하고 사용할 수 있도록 합니다.
기본 타입과 객체 타입의 이해는 자바스크립트 프로그래밍에서 매우 중요하며, 이를 통해 보다 효과적으로 코드를 작성하고 디버깅할 수 있습니다.
데이터 타입의 특성과 동작 방식을 잘 이해하고 활용하는 것은 자바스크립트 개발의 핵심입니다.
작성자:
이윤서 [비회원]
| 작성일자: 1년 전
2024-09-08 14:47:22
조회수: 259 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 259 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.