Rumah > hujung hadapan web > tutorial js > Memahami BigInt dalam JavaScript

Memahami BigInt dalam JavaScript

WBOY
Lepaskan: 2024-09-11 06:34:33
asal
1202 orang telah melayarinya

Understanding BigInt in JavaScript


Dalam JavaScript, nombor secara tradisinya diwakili menggunakan jenis Nombor, yang mematuhi piawaian IEEE 754 untuk aritmetik titik terapung berketepatan dua. Perwakilan ini, walaupun serba boleh, mempunyai had: ia boleh mewakili integer dengan selamat hanya sehingga (2^{53} - 1) (atau (9,007,199,254,740,991)). Untuk aplikasi yang memerlukan integer yang lebih besar, JavaScript memperkenalkan penyelesaian melalui jenis BigInt.

Apakah BigInt?

BigInt ialah objek terbina dalam JavaScript yang menyediakan cara untuk mewakili nombor bulat yang lebih besar daripada yang boleh dikendalikan oleh jenis Nombor. Tidak seperti Nombor, yang sesuai untuk aritmetik titik terapung dan boleh mengendalikan nilai antara lebih kurang (-1.8 kali 10^{308}) dan (1.8 kali 10^{308}), BigInt direka khusus untuk aritmetik integer ketepatan arbitrari.

Mencipta Nilai BigInt

Terdapat beberapa cara untuk mencipta nilai BigInt:

  1. Menggunakan BigInt Constructor:
   const bigIntValue = BigInt(123456789012345678901234567890);
Salin selepas log masuk

Perhatikan bahawa BigInt menerima rentetan dan nombor, tetapi apabila menggunakan nombor, ia harus berada dalam julat jenis Nombor.

  1. Menggunakan BigInt Literal: Literal BigInt diakhiri dengan n:
   const bigIntLiteral = 123456789012345678901234567890n;
Salin selepas log masuk

Ini ialah cara yang lebih ringkas untuk menentukan nilai BigInt secara langsung.

Operasi dengan BigInt

BigInt menyokong kebanyakan pengendali aritmetik standard. Berikut ialah gambaran ringkas:

  • Tambahan (+)
  const a = 10n;
  const b = 20n;
  const sum = a + b; // 30n
Salin selepas log masuk
  • Tolak (-)
  const difference = b - a; // 10n
Salin selepas log masuk
  • Pendaraban (*)
  const product = a * b; // 200n
Salin selepas log masuk
  • Bahagian (/)
  const quotient = b / 3n; // 6n (Note: Division results in a `BigInt` which is truncated towards zero)
Salin selepas log masuk
  • Modulus (%)
  const remainder = b % 3n; // 2n
Salin selepas log masuk
  • Eksponensiasi (``)**
  const power = a ** 3n; // 1000n
Salin selepas log masuk

Perbandingan dan Kesaksamaan

BigInt boleh dibandingkan menggunakan operator perbandingan standard. Ambil perhatian bahawa nilai BigInt dan nilai Nombor tidak boleh dibandingkan secara langsung:

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

Menukar Antara BigInt dan Nombor

Penukaran antara BigInt dan Number boleh dilakukan menggunakan kaedah penukaran eksplisit:

  • Dari BigInt kepada Nombor:
  const bigIntValue = 123n;
  const numberValue = Number(bigIntValue);
Salin selepas log masuk

Nota: Ini boleh kehilangan ketepatan jika nilai BigInt terlalu besar.

  • Dari Nombor kepada BigInt:
  const numberValue = 123;
  const bigIntValue = BigInt(numberValue);
Salin selepas log masuk

Had dan Pertimbangan

  1. Operasi Campuran: Anda tidak boleh mencampurkan BigInt dan Number dalam operasi aritmetik tanpa penukaran eksplisit:
   const a = 10n;
   const b = 5;
   // The following line will throw a TypeError
   const result = a + b; 
Salin selepas log masuk
  1. Sokongan JSON: BigInt tidak disokong dalam siri JSON secara langsung. Percubaan untuk menyelaraskan nilai BigInt akan mengakibatkan TypeError:
   const bigIntValue = 123n;
   JSON.stringify(bigIntValue); // Throws TypeError
Salin selepas log masuk

Untuk mengendalikan BigInt dalam JSON, anda mungkin perlu menukarnya kepada rentetan terlebih dahulu:

   const bigIntValue = 123n;
   const jsonString = JSON.stringify({ value: bigIntValue.toString() });
Salin selepas log masuk
  1. Prestasi: Walaupun BigInt menawarkan ketepatan sewenang-wenangnya, ia boleh menjadi lebih perlahan berbanding dengan operasi Nombor disebabkan oleh kerumitan pengendalian integer yang lebih besar.

Kes Penggunaan

BigInt amat berguna dalam senario di mana ketepatan dengan integer besar adalah penting, seperti:

  • Kriptografi
  • Pengiraan berskala besar (cth., aplikasi kewangan)
  • Aritmetik ketepatan tinggi dalam pengiraan saintifik

Kesimpulan

BigInt ialah tambahan hebat kepada JavaScript, mengembangkan keupayaannya untuk mengendalikan integer melebihi had jenis Nombor. Memahami operasi, had dan kes penggunaan yang sesuai boleh membantu dalam memanfaatkan faedahnya untuk aplikasi yang memerlukan pengiraan integer yang besar.


Atas ialah kandungan terperinci Memahami BigInt dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan