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پشتیبانی میکنند، اما ممکن است در محیطهای قدیمی کار نکند.
دیدگاهتان را بنویسید