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"을 반환한다.

하지만 함수형은 따로 없으며 함수는 객체에 속한다. 하위 호환성을 위해 남아있다.