자료형
✒️ 2025-05-23 15:15 내용 수정
참고 자료 : mdn web docs javasript data structures, mdn web docs primitive, Geeks for geeks primitive and non primitive data types in javascript
프로그램에서 다룰 수 있는 값의 종류
- Java의 데이터 타입(Data Types)와 비슷하지만 일부 타입이 다르다.
- Java에서 데이터 타입(Data Types), 변수(Variables)와 상수(Constant)와 비슷해 보이지만, 타입이 정해져 있지 않다.
- 참고 자료 : TCPSchool js datatype basic
- JavaScript에서는 각각의 자료형을 나타내는 키워드가 따로 존재하지 않는다.
- 자료형이 동적으로 바뀔 수 있다.
- 자료형 체계#2. 동적 정형(Dynamic type checking) 참고.
| 분류 | 타입 | 설명 |
|---|---|---|
| primitive | number | 숫자(정수, 실수 모두 포함) |
| bigint | 정수 범위를 넘는 아주 큰 숫자를 표현 | |
| string | 문자열(문자, 문자열 구분 없이 모두 포함) | |
| boolean | 참(true), 거짓(false) |
|
| symbol | 객체의 속성을 위한 식별자 타입 변경 불가 |
|
| null | object 타입이며 값이 정해지지 않음 | |
| undefined | 값과 타입이 없음 | |
| non-primitive | object | 객체 |
| array | 배열 | |
| function | 함수 |
primitive type
- Javascript에서 원시 값(primitive value)은 객체가 아니면서 메서드 또는 속성도 가지지 않는 데이터다.
- 가장 낮은 수준의 단계에서 표현된다.
- 사전에 정의된 타입이다.
- 원시 값은 불변하다.
- 원시 값을 할당한 변수가 불변한다는 얘기가 아니다.
- 데이터 구조의 타입에 따라 크기가 고정되어 있다.
- 값을 전달할 때 값 자체를 복사하여 전달한다.
null과undefined를 제외한 원시 값은 Java의 Wrapper 클래스처럼 각 타입에 대응되는 wrapper 타입 객체가 있다.
| wrapper 타입 | primitive type |
|---|---|
| Number | number |
| Bigint | bigint |
| String | string |
| Boolean | boolean |
| Symbol | symbol |
| - | null |
| - | undefined |
non-primitive type
- 변하는 값으로 이루어진 복합적인 데이터 구조이다.
- 프로그래머가 지정하여 생성도 할 수 있다.
- 참조값을 저장한다.
- 동적으로 크기가 커진다.
| 타입 | 설명 |
|---|---|
| object | 객체 |
| array | 배열 |
| function | 함수 |
숫자형(number)
- 정수, 실수를 포함한 숫자들을 표현할 때 사용한다.
± 2 ^ 53까지 표현 가능하다.
let var1 = 10;
let var2 = 3.14;
bigint
- 정수 범위를 넘어선 매우 큰 숫자를 표현할 때 사용한다.
- Number 타입보다 큰 수를 다를 때 사용한다.
- Bitint는 Number 타입과 연산할 수 없다.
const big1 = 1234567890123456789012345678901234567890n;
문자(string)
- JavaScript에서는 문자열과 문자 구분이 없다.
- 큰 따옴표(
"")나 작은 따옴표('')로 둘러 쌓인 내용이 String이 되고, 각 따옴표 안에 다른 따옴표는 string이다.
let var1 = "안녕하세요"
let var2 = '안녕하세요'
document.write('"안녕"하세요<br>');
document.write("'안녕'하세요<br>");
"안녕"하세요
'안녕'하세요
논리형(boolean)
true나false로 참과 거짓을 표현할 때 사용한다.false,0,null,'',undefined는 모두false로 취급된다.
let var1 = true;
let var2 = false;
null
- 변수의 값이 비어있는 상태임을 표시할 때 사용한다.
- 변수를 선언하고
null이라는 값을 의도적으로 할당한 상태이다.
let var1 = null;
undefined
- 값과 타입이 정해지지 않은 상태다.
- 정의 자체가 되어 있지 않은 상태이다.
- 변수를 선언하고 아무 값을 할당하지 않은 상태이다.
let var1;
console.log(var1);
undefined