Heim  >  Artikel  >  Web-Frontend  >  BigInt in JavaScript verstehen

BigInt in JavaScript verstehen

WBOY
WBOYOriginal
2024-09-11 06:34:331157Durchsuche

Understanding BigInt in JavaScript


In JavaScript werden Zahlen traditionell mit dem Zahlentyp dargestellt, der dem IEEE 754-Standard für Gleitkommaarithmetik mit doppelter Genauigkeit entspricht. Diese Darstellung ist zwar vielseitig, hat aber eine Einschränkung: Sie kann ganze Zahlen nur bis zu (2^{53} - 1) (oder (9.007.199.254.740.991)) sicher darstellen. Für Anwendungen, die größere Ganzzahlen erfordern, bietet JavaScript eine Lösung durch den BigInt-Typ.

Was ist BigInt?

BigInt ist ein in JavaScript integriertes Objekt, das eine Möglichkeit bietet, ganze Zahlen darzustellen, die größer sind als diejenigen, die vom Typ „Number“ verarbeitet werden können. Im Gegensatz zu Number, das für Gleitkomma-Arithmetik geeignet ist und Werte zwischen ungefähr (-1,8 mal 10^{308}) und (1,8 mal 10^{308}) verarbeiten kann, ist BigInt speziell für Ganzzahlarithmetik mit beliebiger Genauigkeit konzipiert.

BigInt-Werte erstellen

Es gibt mehrere Möglichkeiten, BigInt-Werte zu erstellen:

  1. Verwendung des BigInt-Konstruktors:
   const bigIntValue = BigInt(123456789012345678901234567890);

Beachten Sie, dass BigInt Zeichenfolgen und Zahlen akzeptiert, aber wenn Zahlen verwendet werden, sollten diese im Bereich eines Zahlentyps liegen.

  1. Verwendung des BigInt-Literals: BigInt-Literale werden mit einem n angehängt:
   const bigIntLiteral = 123456789012345678901234567890n;

Dies ist eine präzisere Möglichkeit, BigInt-Werte direkt zu definieren.

Operationen mit BigInt

BigInt unterstützt die meisten standardmäßigen arithmetischen Operatoren. Hier ein kurzer Überblick:

  • Zusatz (+)
  const a = 10n;
  const b = 20n;
  const sum = a + b; // 30n
  • Subtraktion (-)
  const difference = b - a; // 10n
  • Multiplikation (*)
  const product = a * b; // 200n
  • Abteilung (/)
  const quotient = b / 3n; // 6n (Note: Division results in a `BigInt` which is truncated towards zero)
  • Modul (%)
  const remainder = b % 3n; // 2n
  • Potenzierung (``)**
  const power = a ** 3n; // 1000n

Vergleiche und Gleichheit

BigInt kann mit den Standardvergleichsoperatoren verglichen werden. Beachten Sie, dass BigInt-Werte und Number-Werte nicht direkt vergleichbar sind:

const a = 10n;
const b = 10;
console.log(a == b); // false
console.log(a === BigInt(b)); // true

Konvertieren zwischen BigInt und Number

Die Konvertierung zwischen BigInt und Number kann mithilfe expliziter Konvertierungsmethoden erfolgen:

  • Von BigInt zu Number:
  const bigIntValue = 123n;
  const numberValue = Number(bigIntValue);

Hinweis: Dies kann an Präzision verlieren, wenn der BigInt-Wert zu groß ist.

  • Von Number zu BigInt:
  const numberValue = 123;
  const bigIntValue = BigInt(numberValue);

Einschränkungen und Überlegungen

  1. Gemischte Operationen: Sie können BigInt und Number in arithmetischen Operationen nicht ohne explizite Konvertierung mischen:
   const a = 10n;
   const b = 5;
   // The following line will throw a TypeError
   const result = a + b; 
  1. JSON-Unterstützung: BigInt wird in der JSON-Serialisierung nicht direkt unterstützt. Der Versuch, BigInt-Werte in Strings umzuwandeln, führt zu einem TypeError:
   const bigIntValue = 123n;
   JSON.stringify(bigIntValue); // Throws TypeError

Um BigInt in JSON zu verarbeiten, müssen Sie es möglicherweise zuerst in einen String konvertieren:

   const bigIntValue = 123n;
   const jsonString = JSON.stringify({ value: bigIntValue.toString() });
  1. Leistung: Während BigInt eine beliebige Genauigkeit bietet, kann es aufgrund der Komplexität der Verarbeitung größerer Ganzzahlen im Vergleich zu Zahlenoperationen langsamer sein.

Anwendungsfälle

BigInt ist besonders nützlich in Szenarien, in denen die Präzision bei großen Ganzzahlen entscheidend ist, wie zum Beispiel:

  • Kryptographie
  • Groß angelegte Berechnungen (z. B. Finanzanwendungen)
  • Hochpräzise Arithmetik in wissenschaftlichen Berechnungen

Abschluss

BigInt ist eine leistungsstarke Ergänzung zu JavaScript und erweitert seine Möglichkeiten zur Verarbeitung von Ganzzahlen über die Grenzen des Zahlentyps hinaus. Das Verständnis seiner Abläufe, Einschränkungen und geeigneten Anwendungsfälle kann dabei helfen, seine Vorteile für Anwendungen zu nutzen, die große Ganzzahlberechnungen erfordern.


Das obige ist der detaillierte Inhalt vonBigInt in JavaScript verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn