동적 타입 언어로
명시하지 않아도 됩니다.
What ?
Data type변수나 값이 가질 수 있는 데이터의 종류입니다.
기본형(원시) 타입 : 변경 불가능한 값 '할당이나 연산시 데이터가 복제'
값을 복사 할 때 복사된 값을 다른 메모리에 할당 하기 때문에 원래의 값과 복사된 값이 서로에게 영향을 미치지 않는다.
마지막에 할당한 값이 출력
1. Number
-->숫자로 (number) 라고 따로 선언 X
숫자에는 (곱셈 *, 나눗셈 /, 덧셈 +, 뺄셈 -)이 사용
"Infinity" = 어떤 숫자보다 더 큰 특수 값, 무한대(∞)표현.
숫자를 0으로 나누면 무한대를 얻을 수 있습니다.
ex) alert( 1 / 0 ); ---> infinity 추출 |
cf) NaN = 계산 과정 에러 (ex)음수의 제곱근을 구함, 숫자가 아닌 것을 연산
2. String
--> 문자로 ('' 또는 "")를 사용
3. Boolean
--->논리적 참(true), 거짓(false)을 나타내는 값
DATA Type true / false로 변환되는 값
boolean | true | false |
string | 비어 있지 않은 모든 문자열 | ""(빈 문자열) |
number | 0이 아닌 모든 숫자(무한대 포함) | 0, NaN |
object | 모든 객체 | null |
Undefined | 해당 없음 | undefined |
4. null
-->의도적으로 변수에 값이 없다는 것을 명시할때 사용
0 또는 공백과 다르다. 0은 Number이고, 공백은 String이다.
5. undefined
선언 이후 값을 할당하지 않은 변수
6. symbol
(ES6에서 새롭게 추가된 타입) 변경 불가능한 기본형 값
cf)유일한 객체의 프로퍼티 키(property key)생성 시 사용
var str = "Hello";
str = "Hi";
첫번째 줄에서는 Hello 라는 값을 메모리에 생성한 뒤, str 라는 변수를 만들어 해당 메모리 주소를 가리키게 한다.
두번째 줄에서는 Hi 라는 값을 메모리에 새로 생성한 뒤, 변수가 이 새로운 주소를 가리키게 한다.
결과적으로, 메모리 상에는 Hello 와 Hi 가 둘다 존재한다. 다만 Hello 는 현재 미아 상태일 뿐.
object/reference type(객체타입) 변수가 객체의 주소를 가리키는 값이기 때문에 복사된 값(주소)이 같은 값을 가리킨다.Data type의 역할 : 메모리 공간의 크기와 할당할 수 있는 값을 컴퓨터와 개발자에게 알려주는 역할
예를 들어, 같은 변수에 숫자를 넣었다가 문자열을 넣을 수도 있어.
📌 1. JavaScript의 데이터 타입 종류
자바스크립트의 데이터 타입은 크게 기본(Primitive) 타입과 객체(Object) 타입으로 나뉘어.
데이터 타입설명예제기본 타입 (Primitive Type) | 변경할 수 없는(Immutable) 값 | |
number | 숫자 (정수, 실수 구분 없음) | let num = 42; |
string | 문자열 | let str = "Hello"; |
boolean | 참(true) 또는 거짓(false) | let isTrue = false; |
undefined | 값이 할당되지 않은 변수 | let x; // undefined |
null | 값이 없음을 명시적으로 표현 | let y = null; |
symbol (ES6) | 유일한 값을 만들 때 사용 | let sym = Symbol("id"); |
bigint (ES11) | 아주 큰 정수를 다룰 때 사용 | let big = 12345678901234567890n; |
객체 타입 (Object Type) | 여러 값을 담을 수 있는 구조 | |
Object | 키-값 쌍으로 이루어진 데이터 | let obj = { name: "Alice", age: 25 }; |
Array | 여러 개의 값을 저장하는 리스트 | let arr = [1, 2, 3]; |
Function | 함수도 객체의 한 종류 | function sayHi() { console.log("Hi"); } |
📌 2. 기본 타입 (Primitive Type) 자세히 알아보기
1️⃣ Number (숫자형)
자바스크립트에서 숫자는 정수와 실수를 구분하지 않고 number 타입으로 다뤄.
특수한 숫자 값
값의미Infinity | 무한대 (1 / 0) |
-Infinity | 음의 무한대 (-1 / 0) |
NaN (Not-a-Number) | 숫자가 아님 ("hello" * 2) |
2️⃣ String (문자열)
문자열은 **작은 따옴표(''), 큰 따옴표(""), 백틱(``)**을 사용해 표현할 수 있어.
템플릿 리터럴 (Template Literal)
백틱(`)을 사용하면 문자열 내에 변수를 쉽게 포함할 수 있어.
3️⃣ Boolean (불리언)
true 또는 false 값을 가지는 논리 타입이야.
4️⃣ Undefined (정의되지 않음)
변수를 선언했지만 값을 할당하지 않으면 undefined가 됨.
5️⃣ Null (값이 없음)
null은 변수에 **"의도적으로 값이 없음"**을 의미하는 값이야.
6️⃣ Symbol (심볼, ES6 추가)
심볼은 고유한 값을 만들 때 사용해.
7️⃣ BigInt (큰 정수, ES11 추가)
BigInt는 매우 큰 정수를 다룰 때 사용해. 숫자 뒤에 n을 붙이면 BigInt로 인식해.
📌 3. 객체 타입 (Object Type)
자바스크립트에서 객체는 키-값 쌍을 가지는 자료 구조야.
배열, 함수도 객체의 한 종류야!
1️⃣ 일반 객체 (Object)
2️⃣ 배열 (Array)
배열은 여러 값을 저장할 수 있는 리스트야.
3️⃣ 함수 (Function)
자바스크립트에서 함수도 객체의 일종이야.
📌 4. 데이터 타입 변환 (Type Conversion)
자바스크립트는 **자동 형 변환(Type Coercion)**을 하기도 하고, 우리가 직접 변환할 수도 있어.
1️⃣ 자동 형 변환
2️⃣ 명시적 형 변환
📌 5. typeof 연산자 (데이터 타입 확인)
변수의 데이터 타입을 확인할 때 typeof를 사용해.
✅ 정리
- 기본 타입 (Primitive Type)
- number, string, boolean, undefined, null, symbol, bigint
- 객체 타입 (Object Type)
- Object, Array, Function
- 자동 형 변환과 명시적 형 변환이 존재
- typeof 연산자로 데이터 타입 확인 가능
📢 이제 JavaScript의 데이터 타입을 완벽하게 이해했어! 🚀
더 궁금한 게 있으면 질문해 줘! 😊
'FrontEnd > JavaScript' 카테고리의 다른 글
tabIndex (0) | 2022.08.15 |
---|---|
숫자 타입 (0) | 2022.07.22 |
선언자 (0) | 2022.07.22 |
선언 , 할당 , 참조 (0) | 2022.07.21 |
JavaScript (1) | 2022.07.19 |