자바스크립트는 7개의 데이터 타입을 제공합니다.
6개의 원시타입 + 객체타입
아래는 자바스크립트의 원시 타입(Primitive Types)과 객체 타입(Object Types)을 표로 정리한 것입니다:
원시 타입 | 설명 | 예시 |
---|---|---|
undefined | 값이 할당되지 않은 상태를 나타냄 | let x; |
null | 값이 존재하지 않음을 나타냄 | let y = null; |
boolean | 논리적인 참(True) 또는 거짓(False) 값을 나타냄 | let isTrue = true; |
number | 숫자 값을 나타냄 | let count = 10; |
string | 문자열 값을 나타냄 | let message = "Hello"; |
symbol | 고유하고 변경 불가능한 값을 나타냄 | let id = Symbol(); |
bigint | 큰 정수 값을 나타냄 | let bigNumber = 9007199254740991n; |
객체 타입 | 설명 | 예시 |
---|---|---|
Object | 객체를 나타내는 일반적인 타입 | let person = { name: "John", age: 30 }; |
Array | 순서가 있는 값의 컬렉션을 나타냄 | let numbers = [1, 2, 3]; |
Function | 코드의 실행 가능한 블록을 나타냄 | function greet() { console.log("Hello!"); } |
Date | 날짜와 시간 정보를 나타냄 | let now = new Date(); |
RegExp | 정규 표현식을 나타냄 | let pattern = /[a-z]+/; |
Map | 키-값 쌍을 가지는 컬렉션을 나타냄 | let map = new Map(); |
Set | 고유한 값들의 컬렉션을 나타냄 | let set = new Set(); |
정수, 실수 등등 모두 하나의 숫자타입으로 표현한합니다. 숫자 타입 값은 배정밀도 64비트 부동소수점 형식을 따릅니다.
64비트(8바이트)의 메모리 공간을 사용하여 부동소수점 숫자를 표현합니다. 이 형식은 부호(Sign), 지수(Exponent), 가수(Significand/Mantissa)의 세 부분으로 구성됩니다.
- 부호(Sign)는 숫자가 양수인지 음수인지를 나타냅니다. 1비트로 표현되며, 0은 양수, 1은 음수를 나타냅니다.
- 지수(Exponent)는 숫자의 크기와 위치를 조절하는 역할을 합니다. 11비트로 표현되며, 숫자의 지수 부분을 표현합니다.
- 가수(Significand/Mantissa)는 숫자의 정밀도와 소수점 이하 자릿수를 나타냅니다. 52비트로 표현되며, 숫자의 가수 부분을 표현합니다.
자바스크립트는 2진수, 8진수, 16진수를 표현하기 위한 데이터 타입이 없기 때문에 모두 참조하면 10진수로 해석된다.
let binary = 0b1010; // 2진수 리터럴, 10진수 10으로 해석됨
let octal = 0o12; // 8진수 리터럴, 10진수 10으로 해석됨
let hexadecimal = 0xA; // 16진수 리터럴, 10진수 10으로 해석됨
console.log(binary); // 10
console.log(octal); // 10
console.log(hexadecimal); // 10
사실 정수로 표현한다해도 현실은 실수이다. 따라서 정수로 표시되는 수끼리 나누더라도 실수가 나올 수 있다.
console.log(1===1.0) //true
Infinity
: 양의 무한대
-Infinity
: 음의 무한대
NaN
: 산술 연산 불가
문자열은 0개 이상의 16비트 유니코드 문자(UTF-16)의 집합으로 전 세계 대부분의 문자를 표현할 수 있다.
작은따음표, 큰 따음표, 백틱으로 감쌀수 있으며 가장 일반적인건 작은따음표이다. 이렇게 감싸지 않으면 엔진은 식별자가 키워드 같은 토큰으로 인식한다.
``으로 사용가능
ture, false
그냥 문자열이랑 다른건, 유일하다.
객체, 함수, 배열...
데이터 타입이 필요한 이유는 다음과 같습니다.
메모리 공간의 확보
: 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정
메모리 크기 결정
: 값을 참조할때 한번에 읽어 들여야 할 메모리 크기를 결정
2진수를 어떻게 해석
: 메모리에서 읽어 들인 2진수를 어떻게 해석 할지 결정
Number 타입보다 큰 2^53 -1 보다 큰 정수
주로 금융데이터
용도로 사용
생성
하는 방법
주의
할점
type
은 'bigint'특징
new로 생성가능(권장하지는 않음)
'abc'.toUpper 이렇게 하면 자동으로 객체로 엔진이 만들어줌..
근데 나머지는 New로 하면 안됨
New로 만들어진 이유는??? =>