‎‎اعداد صحيح بزرگ جاوااسكريپتJavaScript BigInt -‎

Previous >    <Next  

‎در جاوااسكريپت متغيرهاي‎BigInt‎ براي ذخيره سازي اعداد صحيح بزرگ پيش بيني ‎شده كه نسبت به اعداد معمولي آن بسيار بزرگ تراست.

‎‎دقت اعداد صحيح در جاوااسكريپتJavaScritpt Integer Accuracy -‎

<>‎دقت اعداد صحيح در جاوااسكريپت تا 15 رقم ميباشد.

‎‎مثال ـ نمايش دقت اعداد صحيح

let x = 999999999999999;
let y = 9999999999999999;

--(go to editor for change code and run)

‎‎در جاوااسكريپت تمام اعداد در قالب مميز شناور 64بيتي ذخيره ميشوند .طبق استانداردIEEE 754

‎‎بااين استاندارد عدد صحيح بزرگ را نمي توان نشان داد، آنها گرد ميشوندودقيق نيستند.

‎‎جاوااسكريپت فقط با اين استاندارد اعداد بين محدوده زيرا را بادقت پشتياني نمايد.

‎‎چگونگي ايجاد عددصحيح بزرگHow to Create a BigInt -‎

‎براي ايجاد عدد صحيخ بزرگ حرفn را انتهاي عدد قرار داده يا ‎BigInt()‎‎ را فراخوان ‎ميكنيم.

‎‎مثالهاي نمونه

let x = 9999999999999999;
let y = 9999999999999999n;

--(go to editor for change code and run)

let x = 1234567890123456789012345n;
let y = BigInt(1234567890123456789012345)

--(go to editor for change code and run)

‎BigInt‎نوع جديدي از نوع داده ‎(Datatype)

‎‎اگر با‎typeof‎ نوع داده‎BigInt‎ ارزيابي كنيم نتيچه‎"bigint‎"‎ميباشد.

‎‎مثال ـ ارزيابي اعداد بزرگ

let x = BigInt(999999999999999);
let type = typeof x;

--(go to editor for change code and run)

‎BigInt‎دومين نوع داده عددي بعداز‎numeric‎ در جاوااسكريپت است.

‎‎با‎BigInt‎ در جاوااسكريپت در مجموع هشت نوع داده وجود دارد :

  1. ‎String‎
  2. ‎Number‎
  3. ‎BigInt‎
  4. ‎Boolean‎
  5. ‎Undefined‎
  6. ‎Null‎
  7. ‎Symbol‎
  8. ‎Object‎

‎‎عملگرBigint

‎‎عملياتي كه در جاوااسكريپت روي اعداد صحيح انجام مي دهيد، ميتوان روي اعداد بزرگ هم انجام داد

‎‎مثال ـ نمونه ضرب اعداد بزرگ

let x = 9007199254740995n;
let y = 9007199254740995n;
let z = x * y;

--(go to editor for change code and run)

‎نكات ـ محاسبات مابين‎BigInt , Number‎ مجاز نيست، چون در تبديل نوع داده ‎اطلاعات از دست ميرود.

‎شيفت بسمت راست بدون علامت‎(>>>)‎ روي اعداد بزرگ امكان پذير نيست، آنها داراي ‎طول ثابتي نميباشند.

‎‎اعشار اعداد بزرگBigInt Decimals -‎

‎‎يگ‎BigInt‎ نمي تواند داراي نقطه اعشاري باشد .

‎‎مثال ـ تقسيم اعداد بزرگ

 let x = 5n;
let y = x / 2;
// Error: Cannot mix BigInt and other types, use explicit conversion. 
let x = 5n;
let y = Number(x) / 2;

--(go to editor for change code and run)

‎‎اعداد بزرگ مبنايBigInt Hex , Octal and Binary -‎ ‎16, 8 , 2

‎‎اعداد بزرگ را در مبناي هاي‎16 , 8 ,2‎ ميتوان با علائم آنها در جاوااسكريپت نوشت .

‎‎مثال ـ اعداد بزرگ در مبناي هاي ذكر شده

let hex = 0x20000000000003n;  // hex
let oct = 0o400000000000000003n; // octal
let bin = 0b100000000000000000000000000000000000000000000000000011n;  // binary

--(go to editor for change code and run)

‎‎كنجكاوي دقيقPercision Curiosity -‎

‎‎گرد كردن اعداد ميتواند امنيت برنامه را بخطر بيندازد.

‎‎مثال ـMAX_SAFE_INTEGER بزرگترين عدد با امنيت

9007199254740992 === 9007199254740993; // is true !!! 

--(go to editor for change code and run)

‎‎پشتيباني مرورگرBrowser Support -‎

‎‎BigInt‎‎در سپتامبر‎2020‎ همه مرورگرها ازآن پشتيباني ميكنند .

Chorome Edge Firefox Safari Opera
‎‎67.0‎
May 2018‎
‎‎79.0‎
Jan 2020‎
‎‎68.0‎
Jul 2019‎
‎‎14.0‎
Sep 2020‎
‎‎54.0‎
Jun 2018‎

‎‎حداكثر وحداقل اعداد صحيح بي خطرMinimum and Maximum Safe Integers -‎

‎ES6‎ويژگي هاي ماكزيمم و مينيمم براي شئ عددي اضافه كرده است .مطابق زير

‎‎مثال ـ‎MAX_SAFE INTEGER

let x = Number.MAX_SAFE_INTEGER;

--(go to editor for change code and run)

‎‎توجه ـ شئNumber شناخته شده در جاوااسكريپت براي اعداد است .

‎‎مثال ـ‎MIN_SAFE INTEGER

let x = Number.MIN_SAFE_INTEGER;

--(go to editor for change code and run)

‎‎متدهاي جديد اعدادNew Number Methods -‎

‎‎همچنينES6 دو متد جديد براي اعداد اضافه كرده است .مطابق زير:

‎‎متد‎Number.isInteger()‎‎ شئ اعداد

‎متد‎Number.isinteger()‎‎ ، درصورتيكه آرگومان تابع عددصحيح باشد ‎نتيجه‎true‎ برگشت ميدهد .

‎‎مثال ـ‎isInteger()‎

Number.isInteger(10);
Number.isInteger(10.5);

--(go to editor for change code and run)

‎‎متد‎Number.isSafeInteger()‎‎ شئ اعداد

‎يك عدد صحيح بي خطر ميتواند بصورت عدد با دقت مضاعف نمايش داده شود .در صورتيكه عدد آرگومان ‎تابع فوق قرار گيرد ، نتيجه آن‎true‎ است .

‎‎مثال ـ‎isSafeInteger()‎

Number.isSafeInteger(10);
Number.isSafeInteger(12345678901234567890);

--(go to editor for change code and run)

‎همه اعداد صحيح كه بين‎-‎(253-‎1)‎ و ‎(253-‎1)‎‎است بدون خطر ميباشند . ‎عدد‎900719925470991‎ ايمن و ‎900719925470992‎ ناامن است .


Previous >    <Next