도리쓰에러쓰

[JavaScript] ES11 새로운 데이터 타입 :: BigInt 본문

JavaScript/JS

[JavaScript] ES11 새로운 데이터 타입 :: BigInt

강도리 2022. 2. 10. 23:35

자바스크립트 ES6 문법에서는

숫자(number) 타입, 문자열(string) 타입, 불리언(boolean) 타입, undifined 타입, null 타입, 심벌(Symbol) 타입, 객체 타입

총 7개의 데이터 타입을 제공했는데,

ES11 문법에서 BigInt라는 새로운 데이터 타입이 추가되었습니다.

그럼 지금부터 BigInt에 대해서 알아보겠습니다.


1. 선언 방법

BigInt길이의 제약 없이 정수를 다룰 수 있게 해주는 숫자형입니다.

BigInt를 선언하기 위해 총 3가지 방법이 있습니다.

let bigInt1 = 184738832473n;	
let bigInt2 = BigInt("123123123123123");
let bigInt3 = BigInt(10000000000);

console.log(bigInt1);	// 184738832473n
console.log(bigInt2);	// 123123123123123n
console.log(bigInt3);	// 10000000000n

2. 연산자

1️⃣ 수학 연산자

let big1 = 1n + 2n;
let big2 = 5n / 2n;

console.log(big1);	// 3n
console.log(big2);	// 2n

 

 

2️⃣ 비교 연산자

console.log(1n > 2n);	// false

 

 

3️⃣ 논리 연산자

console.log(3n == 3n);	// true

💡 숫자(Number) 타입 vs bigInt 타입

1️⃣ 수학 연산자

console.log(5n+2);	// Uncaught TypeError

- 타입이 다르기 때문에 Uncaught TypeError가 납니다.

- 해결 방법 : bigInt 타입을 숫자(Number) 타입으로 변경하거나, 혹은 숫자(Number) 타입을 bigInt 타입으로 변경

 

 

2️⃣ 논리 연산자

- if문 안에서 bigInt 타입의 0n은 falsy이고, 그 외의 값은 truthy로 나타납니다.

// 1n은 truthy라 "안녕"이 출력됩니다.
if(1n && 2) {
    console.log("안녕");
}

// 0n은 falsy라 "안녕"이 출력되지 않습니다.
if(0n && 2) {
    console.log("안녕");
}

⭐ bigInt 타입의 브라우저별 지원 여부를 확인하시려면 아래 사이트를 확인해주세요 !

 

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

Arbitrary-precision integers in JavaScript.

caniuse.com

 

Comments