TECHIT 멋쟁이사자처럼/프론트엔드 스쿨
[JS]데이터 타입
D0HA
2024. 1. 22. 20:54
원시 데이터 타입(Primitive Types)
: 객체가 아니면서 메서드도 가지지않는 어떠한 값
- Number: 정수 및 부동 소수점 숫자
- BigInt: 숫자 데이터 타입으로 표현할 수 있는 범위를 넘어선 숫자, 정수 리터럴 끝에 n을 붙임
- String: 따옴표로 감싼 문자 또는 문자열(작은따옴표, 큰따옴표, 백틱)
- Boolean: true 또는 false를 값으로 가짐
- null: 값이 없음(존재하지 않음)
- undefined: 값이 아직 지정되지 않았음
- Symbol: 객체의 고유한 식별자를 만들기 위해 사용
참조 데이터 타입(Reference Types)
: 원시 데이터 타입이 할당될 때 변수에 값 자체가 담기는 것과 달리, 보관하는 곳의 주소가 넣어짐
원시 데이터의 집합으로, 고정된 크기를 가지지 않고, 주소만을 가지기 때문에 동적으로 크기가 변하는 데이터를 보관할 수 있다.
- Object: 여러 종류의 데이터 타입의 집합, 키와 값으로 구성, 키와 값으로 구성(프로퍼티)
typeof 연산자
: JS에서는 변수에 저장하는 값에 따라 자료형이 결정되는데, 어떤 자료형인지 확인할 때는 typeof 연산자를 사용한다.
typeof undefined // "undefined"
typeof 7 // "number"
typeof 10n // "bigint"
typeof true // "boolean"
typeof "foo" // "string"
typeof Symbol("id") // "symbol"
typeof Math // "object", 내장 객체이므로 object가 출력
typeof null // "object"
typeof alert // "function"
typeof null의 결과가 "object"인 이유는, 언어 자체의 오류때문이다.
또, typeof는 피연산자가 함수일 때 "function"을 반환한다.
하지만 함수형은 따로 없으며 함수는 객체에 속한다. 하위 호환성을 위해 남아있다.