JavaScript의 BigInt 이해

WBOY
풀어 주다: 2024-09-11 06:34:33
원래의
1153명이 탐색했습니다.

Understanding BigInt in JavaScript


JavaScript에서 숫자는 전통적으로 배정밀도 부동 소수점 연산에 대한 IEEE 754 표준을 준수하는 Number 유형을 사용하여 표현되었습니다. 이 표현은 다재다능하기는 하지만 제한 사항이 있습니다. 최대 (2^{53} - 1)(또는 (9,007,199,254,740,991))까지의 정수만 안전하게 표현할 수 있습니다. 더 큰 정수가 필요한 애플리케이션의 경우 JavaScript는 BigInt 유형을 통해 솔루션을 도입합니다.

BigInt란 무엇인가요?

BigInt는 Number 유형으로 처리할 수 있는 것보다 더 큰 정수를 나타내는 방법을 제공하는 JavaScript의 내장 객체입니다. 부동 소수점 연산에 적합하고 대략 (-1.8 곱하기 10^{308}) ~ (1.8 곱하기 10^{308}) 사이의 값을 처리할 수 있는 Number와 달리 BigInt는 임의 정밀도 정수 연산을 위해 특별히 설계되었습니다.

BigInt 값 생성

BigInt 값을 생성하는 방법에는 두 가지가 있습니다.

  1. BigInt 생성자 사용:
   const bigIntValue = BigInt(123456789012345678901234567890);
로그인 후 복사

BigInt는 문자열과 숫자를 허용하지만 숫자를 사용할 때는 숫자 유형 범위 내에 있어야 합니다.

  1. BigInt 리터럴 사용: BigInt 리터럴에는 n이 접미사로 붙습니다.
   const bigIntLiteral = 123456789012345678901234567890n;
로그인 후 복사

이것은 BigInt 값을 직접 정의하는 보다 간결한 방법입니다.

BigInt를 사용한 작업

BigInt는 대부분의 표준 산술 연산자를 지원합니다. 간략한 개요는 다음과 같습니다.

  • 추가(+)
  const a = 10n;
  const b = 20n;
  const sum = a + b; // 30n
로그인 후 복사
  • 뺄셈(-)
  const difference = b - a; // 10n
로그인 후 복사
  • 곱셈(*)
  const product = a * b; // 200n
로그인 후 복사
  • 구분(/)
  const quotient = b / 3n; // 6n (Note: Division results in a `BigInt` which is truncated towards zero)
로그인 후 복사
  • 계수(%)
  const remainder = b % 3n; // 2n
로그인 후 복사
  • 지수(``)**
  const power = a ** 3n; // 1000n
로그인 후 복사

비교와 평등

BigInt는 표준 비교 연산자를 사용하여 비교할 수 있습니다. BigInt 값과 Number 값은 직접 비교할 수 없습니다.

const a = 10n;
const b = 10;
console.log(a == b); // false
console.log(a === BigInt(b)); // true
로그인 후 복사

BigInt와 Number 간 변환

BigInt와 Number 간의 변환은 명시적인 변환 방법을 사용하여 수행할 수 있습니다.

  • BigInt에서 Number로:
  const bigIntValue = 123n;
  const numberValue = Number(bigIntValue);
로그인 후 복사

참고: BigInt 값이 너무 크면 정밀도가 떨어질 수 있습니다.

  • 숫자에서 BigInt로:
  const numberValue = 123;
  const bigIntValue = BigInt(numberValue);
로그인 후 복사

제한 사항 및 고려 사항

  1. 혼합 작업: 명시적인 변환 없이는 산술 연산에서 BigInt와 Number를 혼합할 수 없습니다.
   const a = 10n;
   const b = 5;
   // The following line will throw a TypeError
   const result = a + b; 
로그인 후 복사
  1. JSON 지원: BigInt는 JSON 직렬화에서 직접 지원되지 않습니다. BigInt 값을 문자열화하려고 하면 TypeError가 발생합니다.
   const bigIntValue = 123n;
   JSON.stringify(bigIntValue); // Throws TypeError
로그인 후 복사

JSON에서 BigInt를 처리하려면 먼저 문자열로 변환해야 할 수도 있습니다.

   const bigIntValue = 123n;
   const jsonString = JSON.stringify({ value: bigIntValue.toString() });
로그인 후 복사
  1. 공연: BigInt는 임의의 정밀도를 제공하지만 더 큰 정수를 처리하는 복잡성으로 인해 Number 연산에 비해 속도가 느릴 수 있습니다.

사용 사례

BigInt는 다음과 같이 큰 정수의 정밀도가 중요한 시나리오에서 특히 유용합니다.

  • 암호화
  • 대규모 계산(예: 금융 애플리케이션)
  • 과학적 계산의 고정밀 연산

결론

BigInt는 JavaScript에 추가된 강력한 기능으로, Number 유형의 한계를 넘어 정수 처리 기능을 확장합니다. 작동, 제한 사항 및 적절한 사용 사례를 이해하면 큰 정수 계산이 필요한 애플리케이션에서 이점을 활용하는 데 도움이 될 수 있습니다.


위 내용은 JavaScript의 BigInt 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿