ค่าดั้งเดิมของ 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 และ Number พื้นฐานร่วมกันในการดำเนินงานทางคณิตศาสตร์มาตรฐาน
9999999999999999n + 5
> Uncaught TypeError: can't convert BigInt to number
ในการคำนวณด้วย BigInt คุณต้องกำหนดตัวถูกดำเนินการทั้ง 2 รายการเป็นค่า BigInt ดังนี้
console.log( 9999999999999999 + 10 ); // Off by one
> 10000000000000010
console.log( 9999999999999999n + 10n );
> 10000000000000009n