26- دروس جافا سكربت – JS BigInt

### مقدمة إلى BigInt في JavaScript

في عالم البرمجة، تعتبر الأرقام جزءًا أساسيًا من التطبيقات والبرامج. في JavaScript، كانت الأرقام تُعامل تقليديًا بنوع بيانات موحد يُدعى “Number”، والذي يعتمد على نظام العد الثنائي IEEE 754 ويستطيع تخزين القيم حتى (2^{53}-1). لكن مع [شركة برمجة مصرية] تطور التطبيقات وازدياد تعقيد العمليات الحسابية، ظهر الاحتياج إلى تمثيل أرقام أكبر وأكثر دقة. هنا يأتي دور BigInt.

### ما هو BigInt؟

BigInt هو نوع بيانات جديد تم تقديمه في ECMAScript 2020 (ES11) لتمكين التعامل مع الأعداد الصحيحة ذات الأحجام الكبيرة والدقة العالية. يتيح لك BigInt تمثيل الأعداد الصحيحة التي تتجاوز الحد الأقصى لنوع البيانات Number.

### إنشاء BigInt

يمكن إنشاء BigInt عن طريق إلحاق حرف ‘n’ بنهاية الرقم أو باستخدام الدالة البنائية `BigInt()`.

#### استخدام حرف ‘n’

const largeNumber = 1234567890123456789012345678901234567890n;
console.log(largeNumber); // 1234567890123456789012345678901234567890n

#### استخدام الدالة البنائية `BigInt()`

const anotherLargeNumber = BigInt("1234567890123456789012345678901234567890");
console.log(anotherLargeNumber); // 1234567890123456789012345678901234567890n

### العمليات الحسابية مع BigInt

يمكنك إجراء العمليات الحسابية الأساسية مثل الجمع والطرح والضرب والقسمة باستخدام BigInt بنفس الطريقة التي تستخدمها مع الأعداد العادية، ولكن يجب أن تكون جميع الأرقام المستخدمة من نوع BigInt.

#### الجمع

const a = 100000000000000000000n;
const b = 200000000000000000000n;
const result = a + b;
console.log(result); // 300000000000000000000n

#### الطرح

const a = 500000000000000000000n;
const b = 300000000000000000000n;
const result = a - b;
console.log(result); // 200000000000000000000n

#### الضرب

const a = 10000000000n;
const b = 30000000000n;
const result = a * b;
console.log(result); // 300000000000000000000n

#### القسمة

const a = 100000000000000000000n;
const b = 3n;
const result = a / b;
console.log(result); // 33333333333333333333n

### المقارنة بين BigInt و Number

لا يمكن خلط BigInt مع Number في العمليات الحسابية مباشرة. يجب تحويل النوعين إلى [شركة برمجة مصرية] نفس النوع قبل إجراء أي عملية حسابية بينهما.

#### مثال على التحويل

const bigIntNumber = 10n;
const normalNumber = 5;

// التحويل إلى BigInt
const sum = bigIntNumber + BigInt(normalNumber);
console.log(sum); // 15n

// التحويل إلى Number
const sumAsNumber = Number(bigIntNumber) + normalNumber;
console.log(sumAsNumber); // 15

### الأداء والاستخدامات

تُستخدم BigInt في التطبيقات التي تتطلب دقة عالية في العمليات الحسابية مثل التطبيقات المالية أو العمليات الرياضية المعقدة. مع ذلك، يجدر بالذكر أن استخدام BigInt قد يكون أبطأ من استخدام Number بسبب تعقيد العمليات الحسابية على الأعداد الكبيرة.

### الخاتمة

يعد BigInt إضافة قوية إلى لغة JavaScript، حيث يتيح للمطورين التعامل مع الأعداد الصحيحة الكبيرة بدقة عالية. ومع ذلك، يجب الانتباه إلى الأداء واختيار نوع البيانات الأنسب بناءً على احتياجات التطبيق. مع استمرار تطور JavaScript، ستظل BigInt أداة مهمة للمطورين في التعامل مع الأرقام الكبيرة.