פרימיטיביים של BigInt הם הוספה חדשה יחסית
JavaScript, שמאפשר לבצע פעולות מתמטיות על מספרים שנמצאים מחוץ לטווח
מאושר על ידי Number
. כדי ליצור BigInt, מוסיפים את n
בסוף המספר
ליטראלי, או להעביר ערך מחרוזת מספר שלם או מספרי לפונקציה BigInt()
.
const myNumber = 9999999999999999;
const myBigInt = 9999999999999999n;
typeof myNumber;
> "number"
typeof myBigInt;
> "bigint"
myNumber;
> 10000000000000000
myBigInt;
> 9999999999999999n
בדוגמה הזו, הערך 9999999999999999
נמצא מחוץ לטווח הספרות שיכול להיות
מיוצגת באופן בטוח על ידי Number
, וגורמת לשגיאת עיגול.
ערכי BigInt לא יורשים את השיטות והמאפיינים על ידי האובייקט Number
מספק, ולא ניתן להשתמש בהם בשיטות Math
המובנות של JavaScript
שהאובייקט סיפק. הדבר החשוב ביותר הוא שלא ניתן לשלב בין רכיבי BigInt למספרים
פעולות אריתמטיות רגילות:
9999999999999999n + 5
> Uncaught TypeError: can't convert BigInt to number
כדי לבצע אריתמטיקה עם BigInts, צריך להגדיר את שני האופרנדים כערכי BigInt:
console.log( 9999999999999999 + 10 ); // Off by one
> 10000000000000010
console.log( 9999999999999999n + 10n );
> 10000000000000009n