BigInt Primes เป็นสิ่งที่เพิ่งเพิ่มเข้ามาสำหรับ
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
ให้ และไม่สามารถใช้กับเมธอดที่ JavaScript ในตัวของ Math
ให้ไว้ สิ่งสำคัญที่สุดคือ คุณไม่สามารถผสม BigInt และ Number
การดำเนินการทางคณิตศาสตร์มาตรฐาน:
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