JavaScript BigInt
BigInt در JavaScript چیست؟
BigInt نوع دادهای است برای کار با اعداد صحیح بسیار بزرگ
که از محدودیت Number.MAX_SAFE_INTEGER عبور میکنند.
const big = 123456789012345678901234567890n;
عددهایی که به n ختم میشوند از نوع BigInt هستند.
چرا BigInt لازم است؟
Number.MAX_SAFE_INTEGER;
// 9007199254740991
9007199254740991 + 1 === 9007199254740992 // true
9007199254740992 + 1 === 9007199254740992 // ❌ خطا
اما با BigInt:
9007199254740992n + 1n === 9007199254740993n // ✅
ایجاد BigInt
1. با پسوند n
let x = 123n;
2. با سازنده BigInt()
let y = BigInt(“12345678901234567890”);
⚠️ ورودی باید عدد صحیح باشد.
عملیات مجاز روی BigInt
10n + 5n // 15n
10n – 5n // 5n
10n * 5n // 50n
10n / 3n // 3n (تقسیم صحیح)
10n ** 2n // 100n
مقایسه BigInt
10n > 5n // true
10n === 10n // true
10n === 10 // false
10n == 10 // true
تبدیل بین Number و BigInt
Number → BigInt
BigInt(10); // 10n
BigInt → Number
Number(10n); // 10
⚠️ ممکن است دقت از بین برود.
محدودیتها و نکات مهم ⚠️
❌ ترکیب مستقیم با Number مجاز نیست
10n + 10; // TypeError
❌ پشتیبانی از اعشار ندارد
10.5n // SyntaxError
❌ Math با BigInt کار نمیکند
Math.sqrt(16n); // خطا
عملگرهای بیتی و BigInt
5n & 1n // 1n
5n << 1n // 10n
استفاده در JSON
JSON.stringify(10n);
// TypeError
راهحل
JSON.stringify(10n.toString());
موارد استفاده رایج
-
بلاکچین و کریپتو 💰
-
محاسبات مالی با دقت بالا
-
ID های بسیار بزرگ
-
Timestamp های خاص
بررسی نوع داده
typeof 10n; // “bigint”
دیدگاهتان را بنویسید