본문 바로가기

Programing/Javascript

[JavaScript] 데이터 타입 확인 - typeof 연산자 사용법

typeof 연산자란?

typeof는 변수의 데이터 타입을 반환하는 연산자이다.

 

문법

typeof operand
typeof(operand)

 typeof 연산자는 데이터 타입을 확인해야 하는 피연산자 앞에 위치한다. 물론 괄호도 사용 가능하지만, 불필요한 괄호를 넣은 사용방법이니 추천하지는 않는다.

 

반환되는 값은 다음과 같다.

  • undefined : 변수가 정의되지 않거나 값이 할당되지 않은 경우
  • number : 숫자인 경우
  • string : 문자열인 경우
  • boolean : true or false인 경우
  • object : 함수, 배열 등 객체인 경우, null 인 경우
  • function : 함수인 경우
  • symbol : 심볼인 경우

 

이를 표로 정리하면 다음과 같다.

표현식 반환값
typeof undefined undefined
typeof 1 number
typeof 'ABC' string
typeof true boolean
typeof null object
typeof function() {} function
typeof Symbol() symbol

 

 

BigInt 데이터 타입의 추가

자바스크립트에 BigInt 라는 데이터 타입이 추가되었다. 기존 숫자형 데이터 타입은 Number 하나였지만, Number 타입의 한계로 인하여 새로운 추가된 것이다. 이로 인해 BigInt 데이터타입의 변수를 typeof 연산자를 이용하여 데이터타입을 반환하면 number 가 아니라 bigint 가 나오게 된다.

 

기존 Number 타입의 한계

Number는 부동 소수점으로 표시된다. 이는 정밀도가 제한적이라는 것을 의미하고, Number 타입만으로는 모든 수를 다 표현할 수 없다는 것을 의미한다. 따라서 Number 타입은 한계치로 다룰 수 있는 값이 존재한다.

Number 타입이 한계치로 다룰 수 있는 값

 

이 한계를 보완하고자 BigInt 데이터형이 추가되었다. BigInt는 임의의 정밀도로 정수를 나타낼 수 있는 JavaScript의 새로운 숫자 데이터 형이다. BigInt를 사용하면 숫자에 대한 안전한 정수 제한을 초과하여 큰 정수를 안전하게 저장하고 조작 할 수 있다.

 

정수 리터럴 끝에 n을 붙이거나 함수 BigInt를 호출하면 문자열이나 숫자를 가지고 BigInt 타입의 값을 만들 수 있다.

const num1 = 10n;

const num2 = BigInt(10);

const num3 = BigInt("10");

 

 

참고로 추가된 지 오랜 시간이 지난 문법이 아니다.

https://caniuse.com/#feat=bigint 에서 브라우저별 지원 여부를 확인할 수 있다.

 

Can I use... Support tables for HTML5, CSS3, etc

 

caniuse.com

 

 

반응형