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
اگر به مثالهای بیشتری برای یک کاربرد خاص نیاز دارید، بگویید! 😊
دیدگاهتان را بنویسید