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

در جاوااسکریپت، BigInt
یک نوع دادهی داخلی است که برای کار با اعداد صحیح بسیار بزرگ استفاده میشود. این ویژگی در ECMAScript 2020 معرفی شد تا محدودیتهای نوع Number
را برطرف کند، زیرا نوع Number
تنها میتواند اعداد صحیح را تا مقدار 253−12^{53} – 1253−1 (یعنی Number.MAX_SAFE_INTEGER
) بهطور ایمن نمایش دهد.
ایجاد یک BigInt
دو روش برای ساخت BigInt
وجود دارد:
- استفاده از پسوند
n
:
let bigInt1 = 123456789012345678901234567890n;
- استفاده از تابع سازنده
BigInt()
:
let bigInt2 = BigInt(“123456789012345678901234567890”);
عملیات ریاضی با BigInt
BigInt
از عملیات ریاضی پایه پشتیبانی میکند:
let a = 100000000000000000000n;
let b = 200000000000000000000n;
console.log(a + b); // 300000000000000000000n
console.log(a * b); // 20000000000000000000000000000000000000000n
console.log(b / a); // 2n (تقسیم در `BigInt` به پایین گرد میشود)
console.log(b % a); // 0n
ترکیب BigInt
با Number
در جاوااسکریپت ترکیب مستقیم BigInt
و Number
مجاز نیست:
console.log(10n + 5); // TypeError: Cannot mix BigInt and other types
برای ترکیب این دو نوع داده، باید یکی را به دیگری تبدیل کنید:
console.log(10n + BigInt(5)); // 15n
console.log(Number(10n) + 5); // 15
مقایسه BigInt
و Number
مقایسه بین BigInt
و Number
امکانپذیر است:
console.log(10n > 5); // true
console.log(10n === 10); // false (چون نوع داده متفاوت است)
console.log(10n == 10); // true (در مقایسهی ضعیف، تبدیل نوع انجام میشود)
محدودیتهای BigInt
- با توابع
Math
سازگار نیست (مثلاًMath.sqrt(10n)
خطا میدهد). - عملیات اعداد اعشاری را پشتیبانی نمیکند (فقط مقادیر صحیح مجاز است).
JSON.stringify
ازBigInt
پشتیبانی نمیکند:
JSON.stringify({ value: 123n }); // خطای TypeError
اگر به مثالهای بیشتری برای یک کاربرد خاص نیاز دارید، بگویید! 😊
دیدگاهتان را بنویسید