BigInt در جاوااسکریپت

BigInt
در جاوااسکریپت یک نوع دادهی داخلی است که برای نمایش اعداد صحیح بسیار بزرگ یا کوچک استفاده میشود که نمیتوانند با نوع دادهی استاندارد Number
نمایش داده شوند.
چرا از BigInt استفاده کنیم؟
نوع دادهی Number
در جاوااسکریپت از استاندارد IEEE 754 استفاده میکند که اعداد را به صورت اعداد اعشاری ۶۴ بیتی نمایش میدهد. این بدان معناست که اعداد صحیحی که فراتر از 253−12^{53} – 1253−1 (حداکثر مقدار امن) یا کمتر از −(253−1)-(2^{53} – 1)−(253−1) باشند، دیگر قابل اعتماد نیستند.
BigInt
این مشکل را با پشتیبانی از اعداد صحیح به دلخواه بزرگ، برطرف میکند.
نحوه تعریف BigInt
۱. با اضافه کردن یک n
به انتهای عدد:
const bigIntNumber = 1234567890123456789012345678901234567890n;
۲. با استفاده از سازنده BigInt()
:
const bigIntFromString = BigInt(“1234567890123456789012345678901234567890”);
const bigIntFromNumber = BigInt(123); // تبدیل از عدد معمولی
ویژگیها و محدودیتها
عدم ترکیب با نوع Number: نمیتوانید BigInt
و Number
را مستقیماً جمع، تفریق یا مقایسه کنید.
const bigInt = 10n;
const number = 20;
console.log(bigInt + number); // TypeError
console.log(bigInt + BigInt(number)); // درست است
- عملگرها: اکثر عملگرهای ریاضی (مانند
+
,-
,*
,/
,%
) باBigInt
کار میکنند.
- دقت بالا: در عملیات با اعداد بسیار بزرگ دقت کامل را حفظ میکند.
const a = 12345678901234567890n;
const b = 98765432109876543210n;
console.log(a + b); // 111111111011111111100n
console.log(b – a); // 86419753208641975320n
console.log(a * b); // یک عدد بسیار بزرگ
تقسیم صحیح: /
فقط قسمت صحیح را برمیگرداند.
console.log(10n / 3n); // 3n
استفاده در مقایسهها
میتوانید از BigInt
برای مقایسه اعداد استفاده کنید، اما باید نوع داده مشابه باشد:
console.log(10n > 5n); // true
console.log(10n === 10); // false (چون یکی BigInt است و دیگری Number)
نکات مهم
BigInt
برای اعداد اعشاری مناسب نیست. فقط اعداد صحیح را پشتیبانی میکند.- پشتیبانی مرورگر: اکثر مرورگرهای مدرن از
BigInt
پشتیبانی میکنند، اما ممکن است در محیطهای قدیمی کار نکند.
دیدگاهتان را بنویسید