Rumah >hujung hadapan web >tutorial js >Apakah Had Jenis Nombor JavaScript dan Bagaimana BigInt Menanganinya?

Apakah Had Jenis Nombor JavaScript dan Bagaimana BigInt Menanganinya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-20 15:35:10563semak imbas

What are the Limits of JavaScript's Number Type and How Does BigInt Address Them?

Had Numerik JavaScript: Ketepatan dan Skala

Keupayaan JavaScript untuk mewakili nilai angka mempunyai had. Memahami sempadan ini adalah penting untuk mengelakkan ketidaktepatan atau tingkah laku yang tidak dijangka dalam aplikasi.

Jenis Nombor

JavaScript mempunyai dua jenis angka: Number dan BigInt. Jenis Nombor, diwakili oleh nombor IEEE 754 titik terapung 64-bit, biasanya digunakan untuk operasi aritmetik.

Integer Selamat Maksimum

Nilai integer terbesar yang Nombor boleh mewakili tanpa kehilangan ketepatan ialah Nombor.MAX_SAFE_INTEGER, yang menyamai kepada:

  • 253-1
  • /- 9,007,199,254,740,991
  • Sembilan kuadrilion tujuh trilion satu ratus sembilan puluh sembilan bilion empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh satu

BigInt

Untuk mengendalikan nilai integer yang sangat besar, JavaScript menawarkan jenis BigInt. Tidak seperti Nombor, BigInt tidak mempunyai sempadan atas yang dipratakrifkan.

Operator Bitwise dan Shift

Adalah penting untuk ambil perhatian bahawa operator bitwise dan shift beroperasi pada integer 32-bit. Oleh itu, integer selamat maksimum untuk pengendali ini ialah 231-1 atau 2,147,483,647.

Contoh

Kod JavaScript berikut menunjukkan pengehadan jenis Nombor JavaScript:

const x = 9007199254740992;
const y = -x;

console.log(x == x + 1); // true
console.log(y == y - 1); // also true

// Arithmetic operators work, but bitwise/shifts only operate on int32:
console.log(x / 2); // 4503599627370496
console.log(x >> 1); // 0
console.log(x | 1); // 1

Atas ialah kandungan terperinci Apakah Had Jenis Nombor JavaScript dan Bagaimana BigInt Menanganinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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