Heim > Web-Frontend > js-Tutorial > BigInt in JavaScript verstehen

BigInt in JavaScript verstehen

WBOY
Freigeben: 2024-09-11 06:34:33
Original
1189 Leute haben es durchsucht

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);
Nach dem Login kopieren

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;
Nach dem Login kopieren

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
Nach dem Login kopieren
  • Subtraktion (-)
  const difference = b - a; // 10n
Nach dem Login kopieren
  • Multiplikation (*)
  const product = a * b; // 200n
Nach dem Login kopieren
  • Abteilung (/)
  const quotient = b / 3n; // 6n (Note: Division results in a `BigInt` which is truncated towards zero)
Nach dem Login kopieren
  • Modul (%)
  const remainder = b % 3n; // 2n
Nach dem Login kopieren
  • Potenzierung (``)**
  const power = a ** 3n; // 1000n
Nach dem Login kopieren

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
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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; 
Nach dem Login kopieren
  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
Nach dem Login kopieren

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() });
Nach dem Login kopieren
  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!

Quelle:dev.to
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage